”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何解决Chrome中Keydown模拟过程中按键输入不正确的问题?

如何解决Chrome中Keydown模拟过程中按键输入不正确的问题?

发布于2024-11-03
浏览:758

How to Resolve Incorrect Key Input During Keydown Simulation in Chrome?

Chrome 中的按键模拟:排除不正确的按键输入故障

在使用 Chrome 构建的 Web 应用程序中,在文本区域元素上模拟按键事件可能会遇到挑战。尽管尝试指定特定的 keyCode,文本区域可能会收到不正确的键值,例如 Enter 键而不是所需的键。

要解决此问题,您可以使用自定义代码来覆盖 ' “KeyboardEvent”对象中的“keyCode”和“which”属性。 “keyCode”是一个遗留属性,已被弃用,取而代之的是“which”。 Chrome 对这些属性的行为有所不同:

  • 在 Firefox 或 Safari 中只需要覆盖“keyCode”。
  • 在 Chrome 中,您需要覆盖“keyCode”和“which”。

以下代码提供了如何在 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)。

版本声明 本文转载于:1729225517如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3