Chrome扩展程序可以可靠地关闭窗口

时间:2019-08-09 17:58:33

标签: javascript google-chrome-extension

在我的扩展程序中,我想打开一些带有“第三方” URL的窗口,即不是chrome-extension:// URL。而且我想在扩展程序关闭时可靠地关闭所有这些窗口。

我可以做这样的事情:

let w = window.open('url');
window.onunload = () => w.close();

但是,我对这个窗口没有像chrome.windows.create()这样的控制权。

但是我无法以这种方式关闭由chrome.windows.create()创建的窗口,因为chrome.windows.remove()window.onunload中将无法工作。

现在我正在这样做:

chrome.windows.create({
    url: ...,
    type: 'popup',
    left: 10000,
    top: 0,
    width: 1,
    height: 1
}, function (w) {
    chrome.tabs.executeScript(w.tabs[0].id, {
        runAt: 'document_start',
        code: 'setInterval(() => { if (!chrome.runtime) window.close(); }, 1000);'
    });
    ...
});

但是打开窗口和注入脚本之间的间隔很小(大约1-2秒),因此仍然无法可靠地关闭窗口。

那么有什么方法可以在扩展名禁用时关闭此类窗口吗?

0 个答案:

没有答案