【问题标题】:How to open new tab in an existing incognito window?如何在现有的隐身窗口中打开新标签?
【发布时间】:2020-06-05 06:56:52
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript google-chrome-extension incognito-mode


    【解决方案1】:

    如果您想在现有窗口中创建选项卡,您可以使用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});
    });
    

    【讨论】:

    • 谢谢,这很有用。并且还提醒隐身需要在 manifest 中设置为“spanning”。
    • 这是我希望的工作,但似乎在我的 Chrome 89.0 中,getAll 没有返回隐身窗口。为什么会这样?
    • @ZorgoZ 您需要允许您的扩展程序以隐身模式运行。
    • @MarcoBonelli,谢谢,我也得出了这个结论……
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 2014-11-05
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    相关资源
    最近更新 更多