【问题标题】:Automatically enter text into an input box with simulated keypresses使用模拟按键自动将文本输入到输入框中
【发布时间】:2016-05-17 23:29:53
【问题描述】:

我有一个表单,可以检测按键以验证用户是否在输入框中输入了任何数据(我无法更改表单,我只是在访问它)。

我编写了一个应用程序,该应用程序可以使用适当的数据自动更改输入框的 value 属性,但是,表单总是无法提交,因为在选择输入框时没有任何按键,它要我“输入数据”到输入框中。

有没有一种方法可以选择输入框,在更改值之前通过“按键”输入随机字符?

我需要一个完全 Javascript 的解决方案,我已经看到一些可能在 JQuery 中工作的解决方案,但我无法为这个特定项目加载该库。

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    我不知道这是否会满足您的要求,但它似乎正在运行“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 扩展中,我认为在这种情况下没有什么不同,但也许这就是它没有执行的原因?没有错误或任何东西......
    • 哦。我以前从未开发过 Chrome 扩展程序来了解它的怪癖。一个快速的谷歌搜索显示:stackoverflow.com/questions/13987380/… 有人说有一个 Webkit 错误,所以这可能是相关的?对不起,我帮不上忙:(
    • 如果扩展程序不是为了向公众发布,您是否考虑将其编写为用户脚本?这可能会让你做你想做的事,并且可以与任何支持它们的浏览器一起工作(例如,带有 Tampermonkey 扩展的 Chrome、带有 Greasemonkey 的 Firefox 等)。
    • 似乎那个错误可能是原因,我会提到用户脚本。我只是在帮助其他一些开发人员,所以我不确定它是否需要扩展。感谢您的帮助!
    猜你喜欢
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 2017-04-29
    • 1970-01-01
    • 2014-01-03
    相关资源
    最近更新 更多