调度键盘事件不'不能在JavaScript中工作

Dispatching keyboard event doesn't work in JavaScript

本文关键字:不能 JavaScript 工作 键盘 事件 调度      更新时间:2023-09-26

我正在尝试用JavaScript模拟浏览器中的用户输入。点击事件被成功创建和调度,但由于某些原因,类似的键盘事件代码似乎根本不起作用。

var event = document.createEvent("KeyboardEvent"); event.initKeyEvent("keydown", true, true, window, false, false, false, false, 87, 0); document.getElementById("id").dispatchEvent(event);

这将返回true,但相应的字符不会出现在输入中。我也试过用keypress和keyup,它们都不起作用(针对FF和Chrome进行了测试)。是出于某些安全原因被浏览器禁止,还是我做错了什么?有没有变通办法让它发挥作用?

事件调度良好,所有事件侦听器都将启动,但没有发生的是字符没有被"键入"。这是因为事件的来源不是正确的。这是一个"安全功能"。

使用结果文本模拟键入的唯一方法是重新设置或显式更改节点的内容。