2017-10-22 24 views
1

所以,我是JavaScript新手,我試圖製作一個自動點擊腳本。問題是,當我在Developer Console中執行腳本時,出現一個名爲「button.click不是函數」的錯誤,並且錯誤只是永遠循環播放和控制檯。這裏是我的代碼:爲什麼我的Auto-Clicker腳本獲取這個Uncaught TypeError?

var button = document.getElementsByClassName("btn btn-default"); 
setInterval(function(){ 
    button.click() 
},200) 

我該如何解決這個問題?

回答

1

由於specification,getElementsByClassName返回所有具有所有給定類名稱的子元素的類數組對象。所以你的「按鈕」不能有click屬性,它是一個數組。你需要採取的元素,例如第一個元素:

var button = document.getElementsByClassName("btn btn-default")[0]; 

但我要說的是,如果你有一個按鈕單擊處理程序邏輯,你想通過一些定時器運行它,那麼最好的辦法將這一邏輯提取到一個函數(讓我們將其命名爲onClick)和定時器來代替click事件仿真運行此功能:

var onClick = function() { 
    console.log("click!"); 
    // your click hanlder logic 
}; 

setInterval(onClick, 200); 

button.addEventListener("click", onClick); 

這也意味着,你不綁定的onclick ATTR處理程序(<button onclick="onClick()"> ),但與addEventListener,這是提供事件處理的首選方式。

+0

我試着這樣做腳本,也沒有工作: VAR鍵= document.getElementsByClassName(「btn-默認「)[0]; setInterval(function(){ button.click() },200) 我的意思是「它沒有工作」是,現在當我點擊按鈕,它甚至不會點擊見下面的GIF。 https://gyazo.com/fc9d144d61882701b98bb116bacb3463 –

+0

@IcyJake我更新了答案,爲您的情況提供了完整的解決方案。 – dhilt

+0

@ - dhilt我很困惑如何使它成爲一個自動答題器。我對JavaScript完全陌生。你能幫我多一點嗎?對不起,如果我討厭或任何東西。 :U –

2

document.getElementsByClassName返回數組檢查這個例子:

<button class="btn-default" onclick="console.log('clicked');"></button> 
 
<script> 
 
var button = document.getElementsByClassName("btn-default")[0]; 
 
setInterval(function(){ 
 
    button.click() 
 
},1000) 
 
</script>

相關問題