如何在现有的隐身 window 中打开新标签页?

How to open new tab in an existing incognito window?

我正在写一个 chrome 扩展,关于在隐身 window 中从上下文菜单创建新选项卡。我正在使用这样的脚本:

chrome.windows.create({url: "https://google.com", incognito: true});

该脚本有效,但它在激活时总是弹出一个新的 window。有什么方法可以在现有的隐身模式中打开新标签页 window?

如果您想在现有 window 中创建一个选项卡,您可以使用 chrome.tabs.create() specifying the windowId of an existing window. To know which one of the open windows is in incognito mode, you can use chrome.windows.getAll() 获取当前打开的 windows 的数组并遍历结果,直到您看到一个带有incognito 设置为 true

这是一个工作示例:

chrome.windows.getAll({populate: false, windowTypes: ['normal']}, function(windows) {
    for (let w of windows) {
        if (w.incognito) {
            // Use this window.
            chrome.tabs.create({url: "https://google.com", windowId: w.id});
            return;
        }
    }

    // No incognito window found, open a new one.
    chrome.windows.create({url: "https://google.com", incognito: true});
});