我有一个插件在加载时监听某个 tabindex 编号,例如在 tabindex 3 中,但是如果用户关闭 1 或 2 或所有以前的选项卡,有办法知道 tabindex 3 现在是 1 或2?
问问题
341 次
1 回答
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 来标识您想要的选项卡。虽然如果您将选项卡移动到不同的窗口,这会改变。
于 2013-10-21T16:21:00.290 回答