Javascript单击多个按钮之一
问题描述:
表单中有两个按钮,我想使用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();
答
首先,在通用的解决方案:
- 度日类名的元素对象,请使用
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();
注意,这将激发与所有元素班级名称。
第二个有语法错误,如果您打算检查浏览器控制台,您会发现这个错误。 'getElement(多个)ByClassName'。它是Elements PLURAL,不是单数。 –
元素可以带或不带s,正确吗?它不会以任何方式工作。 –
没有。它不能。它是“byID”的单数,因为一个dom ID **必须是唯一的。但是可以有多个相同类的元素,所以函数的复数也是如此。 –