【问题标题】:Simulate an enter key press in Javascript with GreaseMonkey使用 GreaseMonkey 在 Javascript 中模拟 Enter 按键
【发布时间】:2015-10-19 06:35:59
【问题描述】:

我要做的是填写一个输入字段,关注它并按 Enter 提交。在特定页面上使用 GreaseMonkey 自动完成所有这些操作。

这是我目前所拥有的,该字段已填满,但我无法让按键工作。

var my_email = "test@maildrop.cc";

var field = document.getElementById('email');

var key_to_press = new Array;
key_to_press["key"] = "Enter";
key_to_press["keyCode"] = "13";
var ev = new KeyboardEvent("pressEnter", key_to_press);

field.value = my_email;

setTimeout(function() {
  field.focus();
}, 2000);

setTimeout(function() {
  field.dispatchEvent(ev);
}, 2000);

这是页面中的一些 HTML:

<div class="form-group no-label required">    
    <label class="control-label" for="invite-email"></label>
    <div class="input-group">
        <input id="hiddenKid" type="hidden" value="BUXB4U"></input>
        <input id="email" class="form-control" type="email" placeholder="E-mail Address" data-type="email" name="invite-email"></input>    
    </div>    
</div>
<div id="submit_email" class="btn btn-submit-invite"></div>

请注意,还有一个提交电子邮件的按钮,我可以使用它,但我真的不知道如何,因为它只是一个 div,可能由网站上的其他一些 JS 处理...

那么有谁知道我怎样才能使输入键发生,或者单击按钮?

【问题讨论】:

  • 为什么不能使用document.getElementById("the_button").click()
  • 我想通了,它使用.tap()事件!

标签: javascript html events greasemonkey keypress


【解决方案1】:

最后我设法点击了按钮。 .click() 不起作用,因为事件使用 .tap() 所以这就是我刚刚所做的:

$('#submit_email').tap();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 2011-01-08
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多