>  기사  >  웹 프론트엔드  >  Chrome에서 키 다운 시뮬레이션 중에 잘못된 키 입력을 해결하는 방법은 무엇입니까?

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

Susan Sarandon
Susan Sarandon원래의
2024-10-18 12:39:03611검색

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 이벤트를 시뮬레이션하는 방법의 예를 제공합니다.

<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.