> 웹 프론트엔드 > JS 튜토리얼 > JavaScript를 사용하여 Safari에서 키보드 이벤트를 시뮬레이션하는 방법은 무엇입니까?

JavaScript를 사용하여 Safari에서 키보드 이벤트를 시뮬레이션하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-21 09:10:11
원래의
707명이 탐색했습니다.

How to Simulate Keyboard Events in Safari Using JavaScript?

JavaScript를 사용하여 Safari에서 키보드 이벤트 시뮬레이션

Safari 브라우저 내에서 키보드 이벤트를 시뮬레이션하기 위해 JavaScript를 사용하여 두 가지 접근 방식을 테스트했습니다.

접근 방식 1:

var event = document.createEvent("KeyboardEvent");
event.initKeyboardEvent("keypress", true, true, null, false, false, false, false, 115, 0);
로그인 후 복사

접근법 2:

var event = document.createEvent("UIEvents");
event.initUIEvent("keypress", true, true, window, 1);
event.keyCode = 115;
로그인 후 복사

그러나 두 코드 중 하나를 실행한 후 이벤트 객체의 keyCode/속성은 0으로 설정되어 있습니다. , 실패했음을 나타냅니다. 시뮬레이션.

해결책:

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 the legacy "keyCode" property is required:
delete e.keyCode;
Object.defineProperty(e, "keyCode", {"value" : 666})
로그인 후 복사

추가 업데이트:

DOM 키보드 이벤트 레벨 3 이제 폴리필은 레거시 속성을 지원합니다.

var e = new KeyboardEvent("keydown", {
    bubbles : true,
    cancelable : true,
    char : "Q",
    key : "q",
    shiftKey : true,
    keyCode : 81
});
로그인 후 복사

브라우저 간 호환성을 위해 다음 initKeyboardEvent 함수를 폴리필 외부에서 활용할 수 있습니다.

function initKeyboardEvent(type, bubbles, cancelable, view, key, location, modifiers, repeat) {
  var event = document.createEvent("KeyboardEvent");
  event.initKeyboardEvent(type, bubbles, cancelable, view, key, location, modifiers, repeat, false, false, false, false, false, false, 0);
  return event;
}
로그인 후 복사

제공된 예제와 데모를 참조하세요. 추가 그림.

위 내용은 JavaScript를 사용하여 Safari에서 키보드 이벤트를 시뮬레이션하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿