调度键盘事件不会';我不能在JavaScript中工作
我试图用JavaScript在浏览器中模拟用户输入。单击事件已成功创建和调度,但由于某些原因,类似的键盘事件代码似乎根本不起作用调度键盘事件不会';我不能在JavaScript中工作,javascript,keyboard,dispatchevent,Javascript,Keyboard,Dispatchevent,我试图用JavaScript在浏览器中模拟用户输入。单击事件已成功创建和调度,但由于某些原因,类似的键盘事件代码似乎根本不起作用 var event=document.createEvent(“KeyboardEvent”); initKeyEvent(“keydown”,true,true,window,false,false,false,87,0); document.getElementById(“id”).dispatchEvent(事件) 这将返回true,但相应的字符不会出现在输入中
var event=document.createEvent(“KeyboardEvent”);
initKeyEvent(“keydown”,true,true,window,false,false,false,87,0);
document.getElementById(“id”).dispatchEvent(事件)代码>
这将返回true,但相应的字符不会出现在输入中。我也尝试过按键和按键,但都不起作用(针对FF和Chrome进行了测试)。
是出于安全原因被浏览器禁止,还是我做错了什么?是否有解决方法使其工作?事件调度良好,所有事件侦听器都将启动,但没有发生的事情是角色没有被“键入”。这是因为事件的来源不正确。这是一个“安全特性”
使用结果文本模拟键入的唯一方法是重新设置值或以其他方式显式更改节点的内容。您是对的,当我以编程方式分派事件时,实际上也会调用“keypress”事件处理程序。我不明白为什么它被认为是一种安全威胁?我总是可以把一些数据放在相应输入的值字段中,甚至可以用这些数据提交表单。它解决了什么问题?