当用户关闭之前的标签时,XUL会获取当前标签号

时间:2013-10-21 15:23:25

标签: javascript firefox firefox-addon xul

我有一个插件在加载时听取某个tabindex数字,例如在tabindex 3中,但是如果用户关闭了1或2或之前的所有标签,那么有一种方法可以知道tabindex 3现在1还是2?

1 个答案:

答案 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和TabClos​​e事件以显示它们的更改。 setTimeout是让标签关闭,因为事件在实际发生之前就会触发。

要测试它,请打开4个标签并选择第4个标签。打开控制台,然后关闭其中一个第一个选项卡。你会看到它发生了变化。


如果您需要更“独特”,可以使用标签linkedPanel ID来标识所需的标签。虽然如果将标签移动到其他窗口,这将会改变。

相关问题