如何模拟使用jQuery在input字段中input?
我想要的是模拟使用javascriptinput<input>
字段。
我有以下代码:
var press = jQuery.Event("keydown"); press.ctrlKey = false; press.which = 65; $("#test").trigger(press);
但是当我加载页面时, #test
input字段没有input字符, #test
'的键码代表'A',但没有'A'input。
基本上我想要的是使用Greasemonkey自动input网站。
请给我一些想法或一些图书馆,我可以用它来做到这一点。
非常感谢!
你可以发送关键事件,任何听取它们的东西都会得到它们, 但是它们不会改变input ,所以你不会看到字母A
出现。 这主要是一个安全的事情; 请参阅“手动发射事件”来讨论这个问题。
所以,如果你想让这个字母出现,你必须在发送键盘事件时改变input的值。 有一个jQuery插件,请参阅“ $.fn.sendkeys
插件” 。
你可以看到一个<input>
如何与用户应用的键,关键事件和这个jsFiddle的插件作出反应 。
作为参考,这是从那个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触发。 - 同样,如果页面的JavaScript触发,则发送
change
事件等。 - 只需find并直接调用页面的JavaScript。 使用脚本注入 , 位置hack ,
unsafeWindow
和/或@grant none
模式来做到这一点。 - 别的东西? 陈述您的真实目标并链接到目标页面。