从Firefox扩展程序中可以获得包含内容HTML窗口的XUL iframe /浏览器。注意我不是问如何获取当前浏览器(gBrowser)或browser.xul窗口。我有目标/内容HTML窗口句柄,我想在XUL树中跟进它(到包含它的XUL元素)。
getting-a-reference-to-the-parent-iframe建议对于HTML iframe,您需要遍历所有iframe以找到正确的iframe,但我想知道是否有一些特定于Firefox的方式来访问包含XUL iframe(来自特权/扩展代码) )。
答案 0 :(得分:1)
aWindow.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIWebNavigation)
.QueryInterface(Components.interfaces.nsIDocShell)
.chromeEventHandler
请注意,在Firefox 3.6和之前的版本中,它会返回一个XPCNativeWrapper,您可能需要将其解包。
答案 1 :(得分:0)
从扩展程序的角度来看,“window”是Firefox的顶级chrome窗口,包含特殊的< vbox>和< hbox>按钮,工具栏等的元素。如果你去File - >你可以在DOM Inspector中看到这些元素。检查Chrome文档 - > (浏览器窗口)。要从扩展程序的Javascript获取当前页面框架,请使用content。
要获取外部窗口,请使用window.parent或window.parent.top。如果内部文档是chrome特权的,那么您可以在窗口级别检查特殊属性或变量。
答案 2 :(得分:0)
在扩展程序中,您的代码通常已在主窗口中执行,因此您只需使用gBrowser
(请参阅https://developer.mozilla.org/en/Code_snippets/Tabbed_browser#From_main_window)。
如果你的代码在另一个窗口中运行,那么window mediator就是你的朋友:https://developer.mozilla.org/en/Code_snippets/Tabbed_browser#From_a_dialog