我在做firefox的extensions时需要和HTML页面元素进行事件交互,需要在extensions管理下的JavaScript里面给HTML元素绑定事件来触发extensions,但现在遇到错误 NS_ERROR_NOT_AVAILABLEfirefox扩展里的JavaScript代码为:var overlay = {
    openCard: function(){
        alert("\u6253\u5f00\u8bfb\u5361\u5668\u6210\u529f\uff01");
        htmldomTest();
    }
};
function htmldomTest() {
    var doc = window.getBrowser().selectedBrowser.contentDocument;
    var tarzz = doc.getElementById("cardTest");
    alert(tarzz);
    tarzz.onclick(alert("test!"));      //此种绑定方式失败
   //tarzz.addEventListener("click", alert("test!"), false); //此方式虽然在触发firefox扩展时弹出test! 但HTML页面元素并没有绑定事件
}要被绑定事件的HTML页面代码为:<td>
     <button id="cardTest" name="dddddd">绑定目标</button>
</td>
此问题的难点在于如何在firefox扩展中将事件绑定到HTMLdocument元素上不胜感谢!

解决方案 »

  1.   

    tarzz.onclick(alert("test!"));
    不是应该这样写么 - -
    tarzz.onclick=function(){alert("test!")};
      

  2.   

    这样写可以的,你没了解我要问什么啊,我现在是无法在firefox插件管理的JavaScript内对HTML元素绑定事件,XULdocument和HTMLdocument是不同的document类型。
      

  3.   

    tarzz.addEventListener("click", alert("test!"), false); //此方式虽然在触发firefox扩展时弹出test! 但HTML页面元素并没有绑定事件
     alert 那样写应该就直接执行了吧...
      所以帮上去的应该是alert的返回值了吧....你写成一个function 然后把function 的name放进去  不要() 应该就可以了
      

  4.   


    哎 就隔了这么一层,我找了好久的原因, 现在想起来这个问题我在初学jQuery时绑定事件时也遇到过,能在同一个地方摔两次,我惭愧啊。