2011-12-13 56 views
0

我試圖點擊網頁上的按鈕,我可以得到物體的長度沒有問題,但是當我嘗試點擊該項目我得到這個錯誤時:Greasemonkey的錯誤嘗試點擊()事件

Error: uncaught exception: [Exception... 
"Component is not available" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" 
location: "JS frame :: resource://greasemonkey/runScript.js :: <TOP_LEVEL> :: line 3" data: no] 

這裏是我使用的代碼:

(function(){ 
    $('body').append('<input type="button" id="autobop" value="autobop" />'); 
    $('#autobop').click(function(){ 
      //buJmnfJwRG 
      alert($('#buJmnfJwRG').length); 
      $('#buJmnfJwRG').click(); // error occurs here 
      /* 
      setInterval(function() { 

      }, 2000);*/ 
     }); 
})(); 

回答

0
$(document).ready(function(){ 
    $('body').append('<input type="button" id="autobop" value="autobop" />'); 

     $('#autobop').click(function(){ 
      //buJmnfJwRG 
      alert($('#buJmnfJwRG').length); 
      $('#buJmnfJwRG').click(); 
     });     
}); 
+0

那同樣的事情 – mcgrailm 2011-12-13 20:19:19

+0

注意,你不需要是`$(文件)。就緒( )`也不`$(function(){...})();`在Greasemonkey腳本中。通用汽車默認情況下會在正確的位置啓動。 – 2011-12-13 20:26:12

0

鏈接到目標頁面。 #buJmnfJwRG來自哪裏,是在目標網頁上還是由腳本添加的?

除非#buJmnfJwRG的點擊,事件處理程序是由腳本創建的,使用jQuery,您無法使用$('#buJmnfJwRG').click();(通常)激活它。

嘗試:

$('#autobop').click (function() { 
    //buJmnfJwRG 
    alert ($('#buJmnfJwRG').length); 

    var clickEvent = document.createEvent ('MouseEvents'); 
    clickEvent.initEvent ('click', true, true); 
    $('#buJmnfJwRG')[0].dispatchEvent (clickEvent); 
}); 
+0

現在沒有錯誤,但沒有任何反應,它不是由我的腳本創建的 – mcgrailm 2011-12-13 20:38:22

0

我有一個dev的看看....

$(document).ready(function(){ 

$('body').append('<input type="button" id="autobop" value="autobop" />'); 

$('#autobop').click(function(){ 

//buJmnfJwRG 

alert($('#buJmnfJwRG').length); 

$('#buJmnfJwRG').click(); 

}); 

});