有没有办法使用高级API来检测选项卡是否在活动的Panorama组中?至少在tabs
模块中似乎没有提到选项卡所属的选项卡组。
答案 0 :(得分:2)
目前还没有计划提供标签组api - Firefox中的“全景”功能并未被证明非常受欢迎,因此与其他功能相比可能没有多大好处。
答案 1 :(得分:1)
实际上还有一种方法。
我不知道如何使用SDK获取XUL标签,但我知道这是可能的,因为我记得有人发布了这样做的问题。也许@canuckistani你可以帮助我们获得xul tab
。
无论如何,只要您拥有tab
,就可以访问它的属性_tabViewTabItem
。从这里你可以做任何你想做的事。比如通过tab._tabViewTabItem.parent.id
或更改群组ID来计算标签的组ID。
这是一些代码,前两行是非sdk代码。
var tab = gBrowser.tabContainer.childNodes[10]; //non sdk code
gBrowser.selectedTab = tab; //non sdk code
console.log(tab._tabViewTabItem.parent.id) //works both in sdk and non-sdk
注意:固定标签没有_tabViewTabItem
属性。这就是你怎么知道它是否固定。
var tabs = gBrowser.tabContainer.childNodes;
for (var i=0; i<tabs.length; i++) {
try {
console.log(tabs[i]._tabViewTabItem.parent.id);
} catch(ex) {
console.warn('tab ' + i + ' ex:', ex);
console.log('its probably pinned')
}
}
答案 2 :(得分:1)
Tab Groups扩展程序使用SessionStore存储数据。
var tabData = JSON.parse(SessionStore.getTabValue(tab,"tabview-tab"));
console.log(tabData.groupID); // 3
有关组本身的数据存储在browser.xul对象(即ownerGlobal)中。特定于每个组的数据存储为“tabview-group”,其他数据存储为“tabview-groups”。
var groupsData = JSON.parse(SessionStore.getWindowValue(tab.ownerGlobal, 'tabview-groups'));
console.log(groupsData); // Object { nextID: 4,
activeGroupId: 3,
activeGroupName: "Third Group",
totalNumber: 2 }
var groupData = JSON.parse(SessionStore.getWindowValue(tab.ownerGlobal, 'tabview-group'));
console.log(tabData[3].title); // Third Group