首页  >  文章  >  web前端  >  如何在 Chrome 中正确指定按键模拟的按键代码?

如何在 Chrome 中正确指定按键模拟的按键代码?

Susan Sarandon
Susan Sarandon原创
2024-10-18 13:13:02508浏览

How to Correctly Specify Keycodes for Keydown Simulations in Chrome?

Chrome 中的按键模拟:指定正确按键的参数

要在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn