如何使用jQuery模拟输入字段中的键入?

我想要的是模拟在中键入<输入&gt使用javascript的字段

我有以下代码:

var press=jQuery.Event(“keydown”);
press.ctrlKey=false;
按。其中=65;
$(“#测试”)。触发器(按);

但是当我加载页面时,#test输入字段没有键入的字符,“65”键代码表示“A”,但没有“A”输入

基本上我想要的是使用Greasemonkey在网站上自动输入

请给我一些想法或一些我可以用来做这件事的图书馆。
非常感谢

您可以发送关键事件,任何侦听它们的内容都将获得它们,但它们不会更改输入,因此您不会看到字母A出现,例如。这主要是一个安全问题;有关这方面的讨论,请参阅“手动触发事件”

因此,如果希望字母出现,则必须在发送键事件时更改输入的值。有一个jQuery插件,请参阅“The$.fn.sendkeys插件”

您可以看到<输入&gt对用户应用的键、键事件和该插件在这个JSFIDLE中做出反应

作为参考,这是JSFIDLE中的关键代码:

$(“按钮”)。单击(功能(zEvent){
if(zEvent.target.id==“simA_平原”){
console.log(“发送普通密钥事件”);
var-keyVal=65;
$(“#事件目标”)。触发器({
键入:'keypress',keyCode:keyVal,which:keyVal,charCode:keyVal
} );
}
否则{
console.log(“使用插件模拟击键”);
$(“#事件目标”)。发送键(“B”);
}
} );


如果您只是想“模拟输入”,那么这个插件就足够了。但是,根据您真正想做什么,您可能需要执行以下一项或多项操作:

  1. 只需将文本设置为您想要的内容
  2. 如果页面的javascript触发了该事件,则发送一个keydown事件
  3. 同样,如果页面的javascript触发了该事件,则发送change事件等
  4. 只需直接查找并调用页面的javascript即可。使用脚本注入位置黑客取消安全窗口,和/或@grant none模式来执行此操作
  5. 还有别的吗?陈述你的真实目标并链接到目标页面

发表评论