我正在开发一个Firefox插件,它主要是一个工具栏,但会有一些对话框/窗口用于偏好等。
在browser.xul
中,我声明了我的全局变量,我将把所有变量存储在:
var coolAddon = {};
然后在我的工具栏中,我希望能够调用coolAddon
的方法,例如点击按钮。
如果我从browser.xul
打开一个对话框,则在对话框中我可以使用coolAddon
访问window.opener.coolAddon
,效果很好。问题是这在工具栏上不起作用 - 仅在窗口/对话框上。工具栏中发生的事件window.opener
为null/undefined
。
如何从工具栏中访问coolAddon
中声明的browser.xul
?我不想重新声明它,因为我需要保留它的当前属性值(我意识到我的示例目前没有任何属性或方法)。
答案 0 :(得分:2)
您应该可以直接从工具栏访问coolAddon。它位于浏览器上下文中。
只有在完全不同的窗口中才需要Window.opener。