Firefox addon &引用;文件「;在mozilla扩展js模块中?

Firefox addon &引用;文件「;在mozilla扩展js模块中?,firefox-addon,mozilla,javascript,Firefox Addon,Mozilla,Javascript,我正在构建Firefox扩展,它创建单个XMPP聊天连接,可以从所有选项卡和窗口访问,所以我认为,实现这一点的唯一方法是在javascript模块中创建连接,并将其包含在每个浏览器窗口中。如果我错了,请纠正我 编辑:我正在使用xul覆盖构建传统的扩展,而不是使用sdk,并讨论这些模块: 所以我将Strophe.js复制到js模块中。Strophe.js使用如下代码: /*_Private_ function that creates a dummy XML DOM document to ser

我正在构建Firefox扩展,它创建单个XMPP聊天连接,可以从所有选项卡和窗口访问,所以我认为,实现这一点的唯一方法是在javascript模块中创建连接,并将其包含在每个浏览器窗口中。如果我错了,请纠正我

编辑:我正在使用xul覆盖构建传统的扩展,而不是使用sdk,并讨论这些模块:

所以我将Strophe.js复制到js模块中。Strophe.js使用如下代码:

/*_Private_ function that creates a dummy XML DOM document to serve as
 *  an element and text node generator.
 */
[-]

然后使用doc.createElement()创建xml(或html?)节点

所有这些都工作正常,但在模块中我得到了错误“error:ReferenceError:document未定义”。 如何避开这个问题


(更大的精确代码:)

听起来您可能没有正确地将内容脚本附加到工作页面。确保您正在使用tabs.attach()之类的工具将一个或多个内容脚本附加到工作页面(请参阅文档)

否则,您可能需要等待DOM加载,等待整个页面加载

window.onload = function ()
{
Javascript code goes here
}
至少应采取以下措施来诊断该问题(即使上述方法不是生产中使用的最佳方法)。但是如果我不得不打赌,我会说你没有附加内容脚本。

使用


我不是使用SDK,而是使用xul覆盖进行传统的扩展。
window.onload = function ()
{
Javascript code goes here
}
Cu.import("resource://gre/modules/Services.jsm");
var doc = Services.appShell.hiddenDOMWindow.document;