使用模拟按键自动输入文本到输入框
问题描述:
我有一个表单检测按键来验证用户是否已将任何数据输入到输入框(我无法更改表单,我只是访问它)。使用模拟按键自动输入文本到输入框
我写了一个应用程序,它可以自动更改输入框的值属性和适当的数据,但是,表单总是无法提交,因为在输入框被选中时没有任何按键,并且它希望我“输入数据“输入到输入框中。
有没有一种方法可以选择输入框,在更改值之前通过“按键”输入随机字符?
我需要一个完全的Javascript解决方案,我已经看到了一些可能在JQuery中工作的解决方案,但我无法为该特定项目加载该库。
答
我不知道这是否会做你想做的,但它似乎运行“onkeypress”警报()。
<input type="text" id="blah" value="" onkeypress="javascript:alert ('Key Pressed');" />
<script type="text/javascript" language="Javascript">
// Create a keyboard event based on the function allowed by the browser (initKeyboardEvent or initKeyEvent)
var e = document.createEvent ("KeyboardEvent");
if (e.initKeyboardEvent)
{
e.initKeyboardEvent("keypress", true, true, window, false, false, false, false, 0, 65);
}
else if (e.initKeyEvent)
{
e.initKeyEvent("keypress", true, true, window, false, false, false, false, 0, 65);
}
// Focus the input and send the keypress
var inp = document.getElementById("blah");
inp.focus();
inp.dispatchEvent(e);
</script>
这段代码是有道理的,但我似乎无法得到它的工作。它在一个Chrome扩展中,我认为在这种情况下没有什么区别,但也许这就是为什么它没有执行?没有错误或任何其他的... – CdnXxRRODxX
哦。我从来没有开发过Chrome扩展程序,才知道它的怪癖。快速谷歌搜索显示:http://stackoverflow.com/questions/13987380/how-to-to-initialize-keyboard-event-with-given-char-keycode-in-a-chrome-extensio哪里有人说有一个Webkit的bug,这可能是相关的?对不起,我不能帮助更多:( – Phil
如果扩展名是不向公众发布,你有没有考虑写它作为一个Userscript?这可能让你做你想要什么,并会与支持他们的任何浏览器中工作(如。带有Tampermonkey扩展的Chrome,带有Greasemonkey的Firefox等)。 – Phil