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

标签 javascript google-chrome-extension incognito-mode

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

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

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

最佳答案

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

关于javascript - 如何在现有的隐身窗口中打开新标签页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60328589/

相关文章:

javascript - 基于集合动态创建颜色图例

charts - 用于具有非常具体需求的折线图的 Javascript 库

javascript - 如何将所有 $ 更改为 jQuery,其中某些变量名称在某些 Jquery 插件中以 $ 开头?

css - 字体只能在隐身模式下正确显示

javascript - 不创造独特的模型? Backbone .js

javascript - 关闭扩展弹出窗口时如何保持脚本运行

node.js - 如何安全地将 Google OAuth 生成的访问 token 传递到 NodeJS REST API?

google-chrome - 如何在 MacOs Mojave 上查看 Google Chrome DNS 缓存?

internal-server-error - 谷歌服务器在隐私浏览模式下的第一个请求给出服务器错误

javascript - Chrome 扩展不会在第一次尝试时获取 URL