Javascript 如何在现有的incognito窗口中打开新选项卡?

Javascript 如何在现有的incognito窗口中打开新选项卡?,javascript,google-chrome-extension,incognito-mode,Javascript,Google Chrome Extension,Incognito Mode,我正在写一个chrome扩展,关于在一个匿名窗口的上下文菜单中创建新的选项卡。我使用的脚本如下: chrome.windows.create({url: "https://google.com", incognito: true}); 脚本可以工作,但激活时总是弹出一个新窗口。有没有办法在现有的incognito窗口中打开新选项卡?如果要在现有窗口中创建选项卡,可以使用指定现有窗口的窗口ID。要知道哪个打开的窗口处于匿名模式,可以使用获取当前打开窗口的数组,并迭代结果,直到看到一个incogn

我正在写一个chrome扩展,关于在一个匿名窗口的上下文菜单中创建新的选项卡。我使用的脚本如下:

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

脚本可以工作,但激活时总是弹出一个新窗口。有没有办法在现有的incognito窗口中打开新选项卡?

如果要在现有窗口中创建选项卡,可以使用指定现有窗口的
窗口ID
。要知道哪个打开的窗口处于匿名模式,可以使用获取当前打开窗口的数组,并迭代结果,直到看到一个
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});
});

谢谢,这很有用。同时也提醒隐姓埋名者需要在清单上设置为“跨越”。这是我希望的工作,但在我的Chrome 89.0中,隐姓埋名的窗口似乎没有被getAll返回。为什么会这样?@ZorgoZ您需要允许您的扩展在匿名模式下运行。@MarcoBonelli,谢谢,我也得出了这个结论。。。