如何模拟使用jQuery在input字段中input?

我想要的是模拟使用javascriptinput<input>字段。

我有以下代码:

 var press = jQuery.Event("keydown"); press.ctrlKey = false; press.which = 65; $("#test").trigger(press); 

但是当我加载页面时, #testinput字段没有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>上键入”,那么该插件就足够了。 但是,根据您真正想要做什么,您可能需要执行以下一项或多项操作:

  1. 只要将文本设置为你想要的就可以了。
  2. 发送一个keydown事件,如果页面的JavaScript触发。
  3. 同样,如果页面的JavaScript触发,则发送change事件等。
  4. 只需find并直接调用页面的JavaScript。 使用脚本注入位置hackunsafeWindow和/或@grant none模式来做到这一点。
  5. 别的东西? 陈述您的真实目标并链接到目标页面。