Firefox:关闭所有选项卡并*最后激活*

Firefox:关闭所有选项卡并*最后激活*,firefox,firefox-addon-webextensions,Firefox,Firefox Addon Webextensions,如何确保活动选项卡最后关闭? 使用上面的代码,它会间歇工作。使用等待并将所有ID作为一个数组一次性传递: 异步函数closeAllTabs(activeTab) { const tabs=await browser.tabs.query({currentWindow:true,active:false}); 等待browser.tabs.remove(tabs.map(tab=>tab.id)); 等待browser.tabs.remove(activeTab.id); } 太棒了!非常感谢。我

如何确保活动选项卡最后关闭?
使用上面的代码,它会间歇工作。

使用
等待
并将所有ID作为一个数组一次性传递:

异步函数closeAllTabs(activeTab)
{
const tabs=await browser.tabs.query({currentWindow:true,active:false});
等待browser.tabs.remove(tabs.map(tab=>tab.id));
等待browser.tabs.remove(activeTab.id);
}

太棒了!非常感谢。我目前正在使用:**async函数closeAllTabs(activeTab,clickData){const tabs=wait browser.tabs.query({currentWindow:true,active:false});wait Promise.all(tabs.map(tab=>browser.tabs.remove(tab.id));if(clickData.button==0)wait browser.tabs.remove(activeTab.id);//MV-最后关闭活动选项卡,使其成为最近关闭列表中的第一个。}browser.browserAction.onClicked.addListener(closeAllTabs);***是否应该从左到右关闭非活动选项卡?我简单地测试了一下,发现了一些异常。我的意思是:非活动选项卡应该从左到右关闭吗?我简单地测试了它,并注意到一些随机结果。异步API没有这样的保证。如果要强制执行此排序,请在原始代码的循环中添加
wait
,和/或选择按
index
属性对
选项卡
数组进行排序。实际上,remove()接受ID数组,因此我相应地更改了答案。再次感谢。我感谢你的帮助。
async function closeAllTabs(activeTab)
{
    const tabs = await browser.tabs.query({ currentWindow: true, active: false });
    for (const tab of tabs)
        browser.tabs.remove(tab.id);

    browser.tabs.remove(activeTab.id);  // Close the active tab last so that it would be first in the Recently Closed list.
}

browser.browserAction.onClicked.addListener(closeAllTabs);