我有一个插件在加载时听取某个tabindex数字,例如在tabindex 3中,但是如果用户关闭了1或2或之前的所有标签,那么有一种方法可以知道tabindex 3现在1还是2?
答案 0 :(得分:1)
是。索引将始终更新以从左到右表示选项卡的顺序,从0开始。如果删除索引0,1或2处的选项卡,则索引为3的原始选项卡将为2。
您可以自己测试一下:
window.addEventListener("load", function () {
var container = gBrowser.tabContainer;
container.addEventListener("TabSelect", function () {
console.log("SELECT: " + gBrowser.selectedTab.linkedPanel
+ " - " + gBrowser.tabContainer.selectedIndex);
}, false);
container.addEventListener("TabClose", function () {
window.setTimeout(function(){
console.log("CLOSE: " + gBrowser.selectedTab.linkedPanel
+ " - " + gBrowser.tabContainer.selectedIndex);}, 2000)
}, false);
}, false);
这会侦听TabSelect和TabClose事件以显示它们的更改。 setTimeout是让标签关闭,因为事件在实际发生之前就会触发。
要测试它,请打开4个标签并选择第4个标签。打开控制台,然后关闭其中一个第一个选项卡。你会看到它发生了变化。
如果您需要更“独特”,可以使用标签linkedPanel ID来标识所需的标签。虽然如果将标签移动到其他窗口,这将会改变。