试图用greasemonkey模拟按钮的点击

Posted

技术标签:

【中文标题】试图用greasemonkey模拟按钮的点击【英文标题】:Trying to simulate the clicking of a button with greasemonkey 【发布时间】:2011-07-18 11:05:33 【问题描述】:

我正在尝试编写一个greasemonkey 脚本,通过浏览器更新一组物品的库存。为此,我需要自动填写一些表单并模拟鼠标点击提交按钮。我的表格填写得很好,但我卡在按钮提交上。

这是我试图模拟点击的按钮的 html

<input type="submit" value="Find" style="" name="process-form" onclick="imhocaller.value='find-resources-page.left'; imhoaction.value='process-form';">

我尝试做这样的事情,但没有任何运气。

document.getElementsByName('process-form').submit();

如果需要,我可以发布更多代码。谢谢!

【问题讨论】:

【参考方案1】:

试试这个 document.getElementsByName('process-form')[0].submit();

UPD:对!必须是 .click() 而不是 .submit()

【讨论】:

不,这似乎也不起作用。不过感谢您的回复!【参考方案2】:

想通了。需要使用 .click() 而不是 .submit()。 我还需要按照 Georgy 的建议添加 [0]。

document.getElementsByName('process-form')[0].click();

【讨论】:

【参考方案3】:

在这里你尝试提交一个输入,你必须提交表单。因此,如果您标记为 #myForm 的 id,您需要这样做:document.getElementById('myForm').submit()

【讨论】:

【参考方案4】:

您还可以通过最新的浏览器发送自定义点击事件,并在 IE 中“触发”onclick 事件。这是最近的一项功能,允许对事件进行大量控制。

var button = document.getElementById("test");
button.onclick = function()

    alert("event was dispatched on me");      

if(document.createEvent)

    var click = document.createEvent("MouseEvents");
    click.initMouseEvent("click", true, true, window,
    0, 0, 0, 0, 0, false, false, false, false, 0, null);
    button = document.getElementById("test");
    button.dispatchEvent(click);
    button.focus();
else if(document.documentElement.fireEvent)

    button = document.getElementById("test");
    button.fireEvent("onclick");
    button.focus();

http://jsfiddle.net/ZWyp7/3/

请注意,您需要在调度事件之前监听它。

【讨论】:

谢谢!我想这可能是最好的方法。【参考方案5】:

另一种方法是在 JQuery 中使用.trigger( "submit" )

【讨论】:

以上是关于试图用greasemonkey模拟按钮的点击的主要内容,如果未能解决你的问题,请参考以下文章

Greasemonkey脚本中的setinterval()和.click()[重复]

火狐浏览器怎样安装GreaseMonkey

怎样用 Javascript 模拟点击按钮执行搜索?

怎么用JavaScript实现自动点击由confirm弹出的对话框中的“确定”按钮?

使用win api模拟鼠标点击warcraft3按钮

用 JS 模拟点击 GMail div 按钮