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

3

我正在编写一个关于在隐身窗口中通过右键菜单创建新标签页的Chrome扩展程序。我正在使用这样的脚本:

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

脚本可以正常工作,但是每次激活时都会弹出一个新窗口。有没有办法在现有的隐身窗口中打开一个新标签页?

1个回答

3
如果您想在现有窗口中创建一个选项卡,可以使用chrome.tabs.create()并指定现有窗口的windowId。要知道哪个打开的窗口是隐身模式,可以使用chrome.windows.getAll()获取当前打开窗口的数组,并遍历结果,直到看到其中一个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});
});

谢谢,这非常有用。还要提醒隐身模式需要在清单中设置为“跨度”。 - Edward Tu
这就是我希望能够工作的,但似乎在我的 Chrome 89.0 中,隐身窗口并没有被 getAll 返回。为什么会这样? - ZorgoZ
@ZorgoZ,你需要允许你的扩展在隐身模式下运行。 - Marco Bonelli
@MarcoBonelli,谢谢,我也得出了这个结论... - ZorgoZ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接