尝试使用greasemonkey模拟按钮的单击

Cod*_*ney 6 html javascript forms greasemonkey form-submit

我正在尝试编写一个greasemonkey脚本,通过浏览器更新项目集合的库存.为此,我需要自动填充几个表单并在提交按钮上模拟鼠标单击.我的表格填写正常,但我坚持按钮提交.

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

<input type="submit" value="Find" style="" name="process-form" onclick="imhocaller.value='find-resources-page.left'; imhoaction.value='process-form';">
Run Code Online (Sandbox Code Playgroud)

我尝试过做这样的事,但没有运气.

document.getElementsByName('process-form').submit();
Run Code Online (Sandbox Code Playgroud)

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

Cod*_*ney 7

弄清楚了.需要使用.click()而不是.submit().我还需要添加[0]作为Georgy的建议.

document.getElementsByName('process-form')[0].click();
Run Code Online (Sandbox Code Playgroud)


小智 7

您还可以通过最新的浏览器发送自定义点击事件,并onclick在IE中"触发" 事件.这是最近的功能,允许大量控制事件.

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();
}
Run Code Online (Sandbox Code Playgroud)

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

请注意,您需要在发送事件之前先监听事件.