【问题标题】:XUL listbox.insertItemAt fails after several opening and closingsXUL listbox.insertItemAt 在几次打开和关闭后失败
【发布时间】:2012-12-09 02:45:12
【问题描述】:

我正在开发一个侧边栏扩展。我遇到的问题是,当打开该侧边栏时,它会进行一些初始化。这需要填充一个列表。我有一个对象,它具有以下一些功能:

 var intializeSidear = {
 initSidebar: function(){
 var listbox_to_init = document.getElementById('generic-list-box'); 
 for(var i = 0; i < 10; i++){
 listbox_to_init.appendItem("Test", i);
 }
 }
 ....

当我第一次打开侧边栏时,一切正常。下次我打开它时,它会给出“listbox_to_init.appendItem 不是函数”的错误。 (我把它包裹在一个 try/catch 块中)。

是否有任何理由说明为什么会发生这种情况?

【问题讨论】:

    标签: firefox firefox-addon xul


    【解决方案1】:

    看来,为了让它正确触发,需要将事件监听器绑定到窗口加载事件:

    window.addEventListener("load", function load(event){
    window.removeEventListener("load", load, false); //remove listener, no longer needed
        init();
    },false);
    

    我不确定为什么会这样。当我警告我从列表框上的 document.getElementById() 检索到的变量时,它显示它是一个 [Xul 对象],它就是。那么为什么它会做出这样的决定,但为了实际操作 xul 对象,我需要等待窗口加载?

    如果有人能提供解释,那就太好了。同时,如果我的代码仍有问题或没有其他人回答我的新问题,我会尝试研究并返回这里。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-27
      相关资源
      最近更新 更多