Javascript Chrome扩展:根据窗口的存在在中创建新窗口
我在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.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"]
}