无法从Javascript页面调用Firefox扩展函数

无法从Javascript页面调用Firefox扩展函数,javascript,firefox,firefox-addon,dom-events,Javascript,Firefox,Firefox Addon,Dom Events,我有一个带有不同文档对象的XUL扩展,也许这就是为什么以下内容不起作用的原因: 在我的页面Javascript中: var evt = document.createEvent("Events"); evt.initEvent("JSON_UPDATE_EVENT", true, false); document.dispatchEvent(evt); 在扩展名中,main.js文件: document.addEventListener("JSON_UPDATE_EVENT", alert("

我有一个带有不同文档对象的XUL扩展,也许这就是为什么以下内容不起作用的原因:

在我的页面Javascript中:

var evt = document.createEvent("Events");
evt.initEvent("JSON_UPDATE_EVENT", true, false);
document.dispatchEvent(evt);
在扩展名中,main.js文件:

document.addEventListener("JSON_UPDATE_EVENT", alert("hello"), false, true);
我甚至试过:

Application.activeWindow.activeTab.document.addEventListener("JSON_UPDATE_EVENT", alert("hello"), false, true);

在这两种情况下,
alert()
仅在扩展启动时调用一次,但从不在事件上调用。网页和扩展名中的文档引用了不同的对象,这可能就是原因。

在main.js文件中执行以下操作:

var chromeWindow = Services.wm.getMostRecentWindow('navigator:browser');
function rawr() { 
chromeWindow.alert("hello")
}
chromeWindow.gBrowser.addEventListener("JSON_UPDATE_EVENT", rawr, false, true);
每个带有选项卡的窗口都有自己的gBrowser

如果要将此添加到当前打开的所有窗口以及将来打开的所有窗口,请在此处查看此模板:


使用模板,只需在addDiv和removeDiv内部编辑即可

非常感谢!我尝试了所有的方法,包括postmessage、chrome消息等等,但是没有任何效果,但是你的解决方案是现成的。