你可以发送按键事件,任何监听它们的东西都会得到它们,但它们不会改变 input,所以你不会看到字母A
出现,例如。这主要是一个安全问题;有关此问题的讨论,请参阅“手动触发事件”。
因此,如果您希望字母出现,则必须在发送键事件时更改输入的值。有一个 jQuery 插件,请参阅“$.fn.sendkeys
插件”。
您可以<input>
在此 jsFiddle 中查看 a对用户应用的键、键事件和该插件的react。
作为参考,这是来自 jsFiddle 的关键代码段:
$("button").click ( function (zEvent) {
if (zEvent.target.id == "simA_plain") {
console.log ("Send Plain key event");
var keyVal = 65;
$("#eventTarg").trigger ( {
type: 'keypress', keyCode: keyVal, which: keyVal, charCode: keyVal
} );
}
else {
console.log ("Use the Plugin to simulate a keystroke");
$("#eventTarg").sendkeys ("B") ;
}
} );
如果您只是想“模拟输入”,那么该插件就足够了<input>
。但是,根据您真正想做的事情,您可能需要执行以下一项或多项操作:
- 只需将文本设置为您想要的内容即可。
- 发送一个
keydown
事件,如果页面的 javascript 触发了该事件。
- 同样,
change
如果页面的 javascript 触发了该事件,则发送事件等。
- 只需找到并直接调用页面的 javascript。使用脚本注入,该位置黑客,
unsafeWindow
和/或@grant none
模式来做到这一点。
- 还有什么?陈述您的真实目标并链接到目标页面。