我正在尝试使用JavaScript在浏览器中模拟用户输入。 Click事件已成功创建和调度,但由于某些原因,键盘事件的类似代码似乎根本不起作用。
var event = document.createEvent("KeyboardEvent");
event.initKeyEvent("keydown", true, true, window, false, false, false, false, 87, 0);
document.getElementById("id").dispatchEvent(event);
返回true但相应的字符不会出现在输入中。我尝试使用按键和键盘也不起作用(针对FF和Chrome测试)。 出于某些安全原因,我是否禁止浏览器,或者我做错了什么?是否有解决方法让它工作?
答案 0 :(得分:1)
事件调度正常并且所有事件侦听器都将触发,未发生的事情是字符不会被“键入”。这是因为事件的起源不是来自正确的来源。这是一个“安全功能”。
模拟使用结果文本键入的唯一方法是重新设置值或以其他方式显式更改节点的内容。