"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Chrome에서 Keydown 시뮬레이션 중에 잘못된 키 입력을 해결하는 방법은 무엇입니까?

Chrome에서 Keydown 시뮬레이션 중에 잘못된 키 입력을 해결하는 방법은 무엇입니까?

2024-11-03에 게시됨
검색:494

How to Resolve Incorrect Key Input During Keydown Simulation in Chrome?

Chrome의 Keydown 시뮬레이션: 잘못된 키 입력 문제 해결

Chrome을 사용하여 구축된 웹 애플리케이션에서 텍스트 영역 요소에 대한 keydown 이벤트를 시뮬레이션하는 데 문제가 발생할 수 있습니다. 특정 keyCode를 지정하려고 시도하더라도 텍스트 영역이 원하는 키 대신 Enter 키를 누르는 등 잘못된 키 값을 수신할 수 있습니다.

이 문제를 해결하려면 ' keyCode' 및 'which' 속성을 'KeyboardEvent' 개체에 포함합니다. 'keyCode'는 'which'를 위해 더 이상 사용되지 않는 레거시 속성입니다. Chrome은 다음 속성과 다르게 작동합니다.

  • Firefox 또는 Safari에서는 'keyCode'만 재정의해야 합니다.
  • Chrome에서는 'keyCode'와 'which'를 모두 재정의해야 합니다.

다음 코드는 Chrome에서 올바른 'which' 값을 사용하여 keydown 이벤트를 시뮬레이션하는 방법에 대한 예를 제공합니다.

var keyEvent = document.createEvent('KeyboardEvent');

// Override 'keyCode' and 'which' properties
Object.defineProperty(keyEvent, 'keyCode', { get: function() { return this.keyCodeVal; } });
Object.defineProperty(keyEvent, 'which', { get: function() { return this.keyCodeVal; } });

keyEvent.initKeyboardEvent('keydown', true, false, null, 0, false, 0, false, 77, 0);
keyEvent.keyCodeVal = 77;
inputNode.dispatchEvent(keyEvent);

이 코드는 'keyCode' 및 'which' 속성을 재정의하여 Chrome이 이벤트를 올바르게 해석하고 'm' 키에 대해 원하는 키 값(77)을 트리거하도록 합니다.

릴리스 선언문 이 글은 1729225517에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3