2013-10-07 35 views
2

我尝试添加一个eventListener到我的扩展。我希望每次选项卡处于活动状态(由用户点击)或新加载时执行一个功能。在Firefox浏览器窗口中添加eventlistener时,如何在Firefox附件中解决错误“未定义窗口”?

我尝试这样做:

window.addEventListener("DOMContentLoaded", checkHost(), false); 

它给我的错误

Uncaught Reference Error: window is not defined

它使我实现多数,我不能在网络上找到的例子。请帮帮我。

+0

我一无所知火狐浏览器安装的,但只是一个建议 - 你可能不希望'checkHost()'...我想你” d只想'checkHost'(除非'checkHost'在调用时返回一个函数)。 'addEventListener'需要对函数的引用 – Ian

+0

我猜你可以用Greasemonkey来完成你需要的东西。 –

+0

我将与大约60-80人分享这个延长,我不会强迫他们首先得到greasemonkey,@lan这是真的。 – wernersbacher

回答

1

通过当前的状态:http://builder.addons.mozilla.org/package/206579/latest

在线生成器是一种在线IDE用于开发Addon-SDK,其中window不在全局范围内 - 它不是任何特定的窗口。

您可以包括tabs module,并听取准备好的事件或激活(标签现在聚焦)事件,这可能是你想要的。

let tabs = require('sdk/tabs'); 
tabs.on('ready', function (tab) { 
    console.log(tab.url + ' is ready!'); 
}); 
+0

感谢这工作得很好 – wernersbacher

+0

你能告诉我为什么'browser.tabs'显示浏览器是不确定的? –

0

你必须把eventlistenerbrowser.xul覆盖引用的脚本中:

试试这样说:

window.addEventListener("DOMContentLoaded", function() {checkHost();}, false); 
+0

仍然,窗口没有被定义.. :( – wernersbacher

+0

你确定你有一个

相关问题