当用户关闭以前的选项卡时,XUL会获取当前选项卡编号

XUL get current tab number when when user closes previous tabs

本文关键字:选项 XUL 获取 编号 用户      更新时间:2023-09-26

我有一个插件在加载时侦听某个选项卡索引号,例如在 tabindex 3 中,但是如果用户关闭 1 或 2 或所有以前的选项卡,有没有办法知道 tabindex 3 现在是 1 或 2?

是的。索引将始终更新,以表示选项卡从左到右的顺序,从 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来识别你想要的选项卡。尽管如果您将选项卡移动到其他窗口,这将发生变化。