要在 Chrome 中模拟给定文本区域元素上的按键事件,您应该使用 initKeyboardEvent 方法。但是,您提供的初始代码收到了不同的结果 - Enter 键码,而不是预期的 m 键码。
要纠正此问题,您需要重写 keyCode 和 KeyboardEvent 对象的 which 属性。以下是更新后的代码:
<code class="javascript">var keyEvent = document.createEvent('KeyboardEvent'); // Override both keyCode and which 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>
通过覆盖这两个属性,您可以确保浏览器收到正确的键码值。该解决方案有效地模拟了指定按键的 keydown 事件,使您能够实现所需的功能。
以上是如何在 Chrome 中正确指定按键模拟的按键代码?的详细内容。更多信息请关注PHP中文网其他相关文章!