无法从Javascript页面调用Firefox扩展函数
我有一个带有不同文档对象的XUL扩展,也许这就是为什么以下内容不起作用的原因: 在我的页面Javascript中:无法从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("
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消息等等,但是没有任何效果,但是你的解决方案是现成的。