Javascript Chrome扩展:根据窗口的存在在中创建新窗口

Javascript Chrome扩展:根据窗口的存在在中创建新窗口,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我在Chrome扩展中创建了一个新窗口,如下所示: chrome.windows.create({ url: 'https://example.com', focused: false, state: "minimized" }, function(hiddenWindow) { var code = "console.log('Some JS code goes here');" chrome.tabs.onU

我在Chrome扩展中创建了一个新窗口,如下所示:

    chrome.windows.create({
      url: 'https://example.com',
      focused: false,
      state: "minimized"
    }, function(hiddenWindow) {
       var code = "console.log('Some JS code goes here');"
         chrome.tabs.onUpdated.addListener(function(tabId, info) {
            if (info.status === 'complete') {
              chrome.tabs.executeScript(hiddenWindow.tabs[0].id, {
                  code: code
                },
                function(results) {
                  console.log(results);
                });
            }
          });
        });
有可能以某种方式做到这一点:

第一次我们创建一个窗口,里面有一个选项卡,就像上面我的代码一样 然后每次我们检查用户是否关闭此窗口 如果窗口仍然存在,则在此窗口中打开一个新选项卡并关闭上一个选项卡。 如果此窗口不再存在,请从1开始重新执行此操作
如果您有任何帮助和想法,我们将不胜感激

将窗口id存储在全局变量中,例如使用chrome.windows.get-当窗口关闭时,API将在chrome.runtime.lastError中返回错误。此外,与关闭以前的选项卡相比,将现有选项卡导航到新URL似乎更简单

现在,上面的方案要求我们在最坏的情况下使用复杂的回调级联,或者在最好的情况下使用承诺,但是现在已经是2019年了,让我们在

用法:

openMinimized('https://example.com').then(results => {
  console.log(results);
});
注:

onUpdated listener检查tabId以仅处理此选项卡 未更新的侦听器将自己注销 代码可以像普通JS一样编写,在IIFE中以模板字符串的形式突出显示语法 如何使用polyfill:browser-polyfill.min.js从其官方repo下载,保存在扩展目录中,并像加载扩展中的任何其他脚本一样加载它,例如,作为manifest.json中的后台脚本:

"background": {
  "scripts": ["browser-polyfill.min.js", "background.js"]
}

非常感谢。正是我需要的!
"background": {
  "scripts": ["browser-polyfill.min.js", "background.js"]
}