2012-12-01 19 views
0

在我的Firefox插件中,我有一个非模态窗口,在用户浏览时保持打开状态。该插件也有一个工具栏。当在工具栏上按下按钮时,会调用一个函数来设置窗口中某些属性的值。如何在设置属性后更新对话窗口?

现在,在我的代码中,我可以调用该函数,但窗口永远不会改变。

但是,我使用onload侦听器调用相同的函数,并且在那里工作正常。我在函数中放入了一个alert,它确实被调用,但是这些改变从不显示在窗口中。

如何确保在我的窗口上显示更改?这里是我的一些示例代码:

var windowManager = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator); 
    var mywindow = windowManager.getMostRecentWindow('mywindow'); 
    if (mywindow) { 
     alert("found it!"); 
     var thislabel = document.getElementById("mylabel"); 
     thislabel.setAttribute("label", "New Text"); 
    } else { 
     alert("The window is not open."); 
    } 
} 

回答

1

我有点猜测在这里,但也许你需要访问正确的文件?

var thislabel = mywindow.document.getElementById("mylabel"); 

// alert something if the element was found 
thislabel !== null && alert('found'); 
+0

就是这样!该函数被调用,但它缺少窗口句柄。谢谢! – bgmCoder

+0

嗯..这是行得通的,我很高兴标出了答案,但它似乎并没有更新窗口,即使该函数被调用。任何线索? – bgmCoder

相关问题