2011-12-13 84 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(); 

}); 

});