Firefox addon 在Firefox加载项中,选项卡指向窗口,反之亦然
在Firefox插件中,有没有从选项卡对象获取窗口对象的方法?反之亦然?例如,如果我得到一个TabClose事件,有没有办法得到关联的窗口对象?是的,在TabClose中,事件参数包含很多有用的内容:Firefox addon 在Firefox加载项中,选项卡指向窗口,反之亦然,firefox-addon,Firefox Addon,在Firefox插件中,有没有从选项卡对象获取窗口对象的方法?反之亦然?例如,如果我得到一个TabClose事件,有没有办法得到关联的窗口对象?是的,在TabClose中,事件参数包含很多有用的内容: function tabclosee(e) { console.error('TabClose, e:', e); } gBrowser.tabContainer.addEventListener("TabAttrModified", tabclosee, false); 因此,在这幅图
function tabclosee(e) {
console.error('TabClose, e:', e);
}
gBrowser.tabContainer.addEventListener("TabAttrModified", tabclosee, false);
因此,在这幅图中,我们看到e.view
是DOMWindow
(xul窗口/chrome窗口)。target是tab元素,在关闭的情况下,HTMLWindow被破坏,因此e.target.linkedBrowser
将为null,但在TabSelect
中它不会为null,您可以像e.target.linkedBrowser.contentWindow一样访问html窗口
如果希望从选项卡对象打开窗口,也可以这样做:e.target.ownerDocument.defaultView
,这与上面的e.view
相同
从该窗口,您可以访问以下所有选项卡:
if (aDOMWindow.gBrowser && aDOMWindow.gBrowser.tabContainer) {
var tabs = aDOMWindow.gBrowser.tabContainer.childNodes;
for (var t=0; t<tabs.length; t++) {
var tab = tabs[t];
var tab_linkedBrowser = tab.linkedBrowser;
var tab_htmlWin = tab.linkedBrowser.contentWindow;
}
}
if(aDOMWindow.gBrowser&&aDOMWindow.gBrowser.tabContainer){
var tabs=aDOMWindow.gBrowser.tabContainer.childNodes;
对于(var t=0;t谢谢!这很有帮助!