gpt4 book ai didi

javascript - 从 Firefox 扩展检测选项卡关闭(关闭后)

转载 作者:行者123 更新时间:2023-11-28 09:58:30 24 4
gpt4 key购买 nike

我正在尝试让我的 Firefox 扩展从浏览器中的所有选项卡创建一个 URL 列表。为了保持列表更新,我需要知道选项卡何时关闭。

我尝试过使用:

window.addEventListener("TabClose", tabRemoved, false);

但是,这会在选项卡实际关闭之前被调用,这会导致我更新的选项卡列表仍然包含关闭的选项卡 url。

我通过迭代所有浏览器来更新选项卡列表,如下所示:

function ()
{
gBrowser = window.getBrowser();
tabs = gBrowser.browsers;
urls = [];

for (var i = 0; i < tabs.length; i++)
{
if (typeof(tabs[i]) != "undefined") {
urls.push(tabs[i].webNavigation.currentURI.spec);
}
}

return urls;
}

所以我正在寻找的是一个在选项卡关闭后被调用的事件,或者一种获取已关闭选项卡索引的方法,以便我可以在迭代浏览器时跳过它。

有人知道任何此类事件或我的问题的其他解决方案吗?

最佳答案

没有特殊的事件 - 您只需捕获常规事件并延迟更新选项卡列表即可。大致如下:

var tabRemoveTimeout = null;
window.addEventListener("TabClose", tabRemoved, false);

function tabRemoved(event)
{
// If we already scheduled an async action - cancel it
if (tabRemoveTimeout)
window.clearTimeout(tabRemoveTimeout);

tabRemoveTimeout = window.setTimeout(function()
{
tabRemoveTimeout = null;
updateTabList();
}, 0);
}

一种不太通用的方法是立即更新列表,但排除正在关闭的选项卡。

关于javascript - 从 Firefox 扩展检测选项卡关闭(关闭后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9572466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com