有什么方法可以使用高级 API 来检测选项卡是否在活动全景组中?tabs
至少在模块中似乎没有提到选项卡所属的选项卡组。
问问题
319 次
3 回答
2
目前没有计划提供选项卡组 api - Firefox 中的“全景”功能尚未证明非常流行,因此与专注于其他功能相比,可能没有太多好处。
于 2012-10-11T06:21:15.883 回答
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')
}
}
于 2014-07-21T00:44:02.207 回答
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
于 2016-09-21T06:57:14.357 回答