JavaScript를 사용하여 Safari에서 키보드 이벤트 생성
JavaScript를 사용하여 Safari에서 키보드 이벤트를 시뮬레이션하는 것은 문서 활용 시도에서 알 수 있듯이 어려울 수 있습니다. .createEvent. 이 문제는 keyCode 속성을 115로 설정하려는 노력에도 불구하고 0으로 초기화되는 일관되지 않은 동작으로 인해 발생합니다.
이 문제를 해결하려면 JavaScript의 기능을 향상시키는 DOM 키보드 이벤트 레벨 3 폴리필을 활용하는 것이 좋습니다. 최신 브라우저를 지원하고 레거시 속성에 대한 이전 버전과의 호환성을 제공하는 이벤트 모델입니다.
이 폴리필을 사용하면 다음과 같은 키보드 이벤트를 생성할 수 있습니다. 그래서:
element.addEventListener("keydown", function(e){ console.log(e.key, e.char, e.keyCode) }) var e = new KeyboardEvent("keydown", {bubbles : true, cancelable : true, key : "Q", char : "Q", shiftKey : true}); element.dispatchEvent(e); //If you need legacy property "keyCode" // Note: In some browsers you can't overwrite "keyCode" property. (At least in Safari) delete e.keyCode; Object.defineProperty(e, "keyCode", {"value" : 666})
폴리필은 keyCode, charCode 등과 같은 레거시 속성을 지원하므로 이러한 속성을 직접 지정할 수 있습니다.
var e = new KeyboardEvent("keydown", { bubbles : true, cancelable : true, char : "Q", key : "q", shiftKey : true, keyCode : 81 });
또한 크로스 브라우저를 찾을 수 있습니다. initKeyboardEvent 버전을 별도의 요점으로 설명합니다.
이러한 기술을 활용하면 Safari에서 키보드 이벤트를 안정적으로 생성 및 전달하여 일관성을 보장할 수 있습니다. 다양한 브라우저에서의 동작.
위 내용은 JavaScript를 사용하여 Safari에서 키보드 이벤트를 안정적으로 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!