2016-09-29 81 views
-1

表单中有两个按钮,我想使用GreaseMonkey在页面加载时自动单击其中一个按钮。这两个按钮是:Javascript单击多个按钮之一

<td rowspan="2"><input class="first action" name="first" type="submit" value="First Action" style="font-size: 10pt;" /></td> 
<td rowspan="2"><input class="second action" name="second" type="submit" value="Second Action" style="font-size: 10pt;" /></td> 

我试过了下面两个代码,但都没有工作。第一个选择表单并尝试提交它,并且我收到一个错误,指出“不允许执行任何操作”。第二个尝试点击()按钮。

第一:

var button = document.getElementById('units_form'); 
window.location(button); 

二:

var button = document.getElementByClassName('first action'); 
button.click(); 
+1

第二个有语法错误,如果您打算检查浏览器控制台,您会发现这个错误。 'getElement(多个)ByClassName'。它是Elements PLURAL,不是单数。 –

+0

元素可以带或不带s,正确吗?它不会以任何方式工作。 –

+0

没有。它不能。它是“byID”的单数,因为一个dom ID **必须是唯一的。但是可以有多个相同类的元素,所以函数的复数也是如此。 –

回答

0

首先,在通用的解决方案:

  • 度日类名的元素对象,请使用document.getElementsByName("class_name")[0]。最后一部分[0]为您提供了具有此类别的所有元素中的第一个
  • 要在元素上触发事件,请参见this article on MDN。我强烈建议全部阅读。从你的文章来看,阅读文章时你很懒惰。

全部放在一起:

var button_element = document.getElementsByName("button-class-name")[0]; 
var event_object = new MouseEvent('click', { 
    'view': window, 
    'bubbles': true, 
    'cancelable': true 
}); 
button_element.dispatchEvent(event_object); 

而且,大多数网站使用jQuery库,它归结为:

$(".class_name").click(); 

注意,这将激发与所有元素班级名称。