窗口对象不可用时可以使用createElement吗?

时间:2014-07-01 18:14:10

标签: javascript firefox firefox-addon firefox-addon-restartless

window对象尚未可用的阶段的Firefox引导插件中,我想创建一个要保留为模板的元素(当时不要插入)。

我想知道这是否可能?
可以在createElement()以外的任何其他地方创建window.document吗?

2 个答案:

答案 0 :(得分:3)

我个人但我的东西是XML文件(真的是一个XUL文件)并使用XHR来解析它(.responseXML)。 DOMParser通过nsIDOMParser是另一种选择(虽然在启动期间执行同步文件I / O并不是一个好主意,但在UX方面......)

如果您想要一个空白文件IIRC(?!),您可以使用nsIDocumentLoaderFactory.createBlankDocument

然后你可以从预解析的DOM {(3}} / .cloneNode(true)进入(浏览器)窗口。

答案 1 :(得分:2)

您可以执行Services.appShell.hiddenDOMWindow.document.createElement

但是在浏览器启动时,你必须添加一个事件监听器来监听加载hiddenDOMWindow的时间。

createElementcreateElement的开销相同,我很确定吗?所以你需要在需要插入时才需要createElement,这显然会有一个窗口。