我想知道nsIDOMWindow(由Services.wm.getWindowEnumerator返回的服务和Services.wm.getXULWindowEnumerator返回的nsIXULWindow之间的区别。
我问的原因是因为我大量使用windowListener(https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIWindowMediator?redirectlocale=en-US&redirectslug=nsIWindowMediator#addListener%28%29)
我在MDN上创建了一个示例,但不明白两个窗口之间的区别。我在想,如果我这样做,我可以做一个更好的例子。 感谢
答案 0 :(得分:1)
NSIXULWindow是一个XUL应用程序对象模型(AOM)窗口:
#document window main-window ... browser #document window myExtensionWindow
正如HTML在DOM中反映为
link
,layer
和img
等节点一样,XUL反映在XUL小部件层次结构中的应用程序对象模型中:{{ 1}},browser
,menu
等等。 DOM和AOM构成了一种连续体,其整体可以从XUL所依据的标准中进行操作。
NSIDOMWindow是一个HTML文档对象模型(DOM)窗口:
当XUL窗口包含能够显示页面的窗口小部件时,例如
menuitem
或<browser>
,该窗口小部件中的文档自然会与chrome窗口本身的文档分开。每个子文档也有一个Window对象,尽管子文档的常识没有窗口。同样适用于在
<iframe>
标签内打开的镀铬窗口。选项卡中打开的chrome文档上方的元素与chrome文档是分开的。
<强>参考强>