Javascript Greasemonkey addEventListener没有开火?
我已经研究了关于这个的各种其他问题,它们都是通过使用addEventListener而不是onclick来解决的。我现在的问题是,这些事件根本不会发生 基本上,我的页面上有一个元素数组,这些元素是“按钮”,然后我用以下代码循环:Javascript Greasemonkey addEventListener没有开火?,javascript,greasemonkey,Javascript,Greasemonkey,我已经研究了关于这个的各种其他问题,它们都是通过使用addEventListener而不是onclick来解决的。我现在的问题是,这些事件根本不会发生 基本上,我的页面上有一个元素数组,这些元素是“按钮”,然后我用以下代码循环: for (var i = 0; i < buttons.length; i++) { buttons[i].className = "button"; buttons[i].style.width = "50px"; buttons[i].
for (var i = 0; i < buttons.length; i++) {
buttons[i].className = "button";
buttons[i].style.width = "50px";
buttons[i].href = "#";
$(buttons[i]).bind('click',function (e) { alert("Hi"); }); //I have even tried jQuery. This isnt here when the line below is here.
buttons[i].addEventListener('click',function (e) { alert("Hi"); },false);
}
for(变量i=0;i
见鬼,我甚至试着将它加载到一个标签中,但它根本不起作用,我不确定为什么。我在同一个页面上有另一个用户脚本,它能够用同样的方法完美地绑定到内容上
控制台中没有错误,只是什么也没有发生。但是,当我通过在函数末尾添加()来进行自调用时,它会在页面加载时运行代码,从而显示警报。Hmm,我想这更多是关于如何调试greasemonkey代码的。我看不出密码有什么问题 我通常有一个函数来向firebug扔东西:
function GM_log(element) {
unsafeWindow.console && unsafeWindow.console.log(element);
}
在本例中,我想知道是否选择了任何按钮,因此我将记录按钮数组,并在单击函数中记录一些内容(而不是警报)
另一种可能是在chrome中设置userscript,这允许您在那里调试代码(firebug不知道greasemonkey脚本代码)。但是定位/修改脚本比较困难,因此只有在您真正迷路的时候才需要这样做。显示的代码片段没有明显的错误。发布或链接到完整的脚本。链接到目标页面,或将其快照粘贴到。。。如果在同一页上运行另一个脚本,则可能会干扰此脚本操作。把剧本也拿出来。