Chrome을 사용하여 구축된 웹 애플리케이션에서 텍스트 영역 요소에 대한 keydown 이벤트를 시뮬레이션하는 데 문제가 발생할 수 있습니다. 특정 keyCode를 지정하려고 시도하더라도 텍스트 영역이 원하는 키 대신 Enter 키를 누르는 등 잘못된 키 값을 수신할 수 있습니다.
이 문제를 해결하려면 ' keyCode' 및 'which' 속성을 'KeyboardEvent' 개체에 포함합니다. 'keyCode'는 'which'를 위해 더 이상 사용되지 않는 레거시 속성입니다. Chrome은 다음 속성과 다르게 작동합니다.
다음 코드는 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)을 트리거하도록 합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3