Chrome을 사용하여 구축된 웹 애플리케이션에서 텍스트 영역 요소에 대한 keydown 이벤트를 시뮬레이션하는 데 문제가 발생할 수 있습니다. 특정 keyCode를 지정하려고 시도하더라도 텍스트 영역이 원하는 키 대신 Enter 키를 누르는 등 잘못된 키 값을 수신할 수 있습니다.
이 문제를 해결하려면 ' keyCode' 및 'which' 속성을 'KeyboardEvent' 개체에 포함합니다. 'keyCode'는 'which'를 위해 더 이상 사용되지 않는 레거시 속성입니다. Chrome은 다음 속성과 다르게 동작합니다.
다음 코드는 Chrome에서 올바른 'which' 값으로 keydown 이벤트를 시뮬레이션하는 방법의 예를 제공합니다.
<code class="js">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);</code>
이 코드는 'keyCode' 및 'keyCode'를 재정의합니다. 이는 Chrome이 이벤트를 올바르게 해석하고 'm' 키에 대해 원하는 키 값(77)을 트리거하도록 보장합니다.
위 내용은 Chrome에서 키 다운 시뮬레이션 중에 잘못된 키 입력을 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!