2016-09-29 43 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(); 

注意,這將激發與所有元素班級名稱。

相關問題