2

有什么方法可以使用高级 API 来检测选项卡是否在活动全景组中?tabs至少在模块中似乎没有提到选项卡所属的选项卡组。

4

3 回答 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 回答