Closing popup window created by Google Chrome extension

后端 未结 4 2100
抹茶落季
抹茶落季 2020-12-02 14:53

I\'m trying to create a Chrome extension that is a replacement for the Delicious bookmarklet. I know there\'s already an extension that does it, but the problem with that ex

相关标签:
4条回答
  • 2020-12-02 15:14

    Try window.close(), but that probably wouldn't work either.

    As you are creating regular window (rather than browser action popup), then you can close it using chrome.tabs.remove() from a background page. You can also detect this window from a background page. Something like:

    chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
        if(changeInfo.status == "loading") {
            if(tab.url == "http://www.delicious.com/save") {
                chrome.tabs.remove(tabId);
            }
        }
    });
    

    I am not sure how Chrome treats created windows though - as tabs or windows. If as windows then above code will be a little different.

    0 讨论(0)
  • 2020-12-02 15:19

    I found a very easy work around to this. You just set the selected tab to True and the Popup disappears, like this...

    // remove popup by selecting the tab
    chrome.tabs.getSelected(null, function(tab) {
        chrome.tabs.update(tab.id, { selected: true } )
    });
    
    0 讨论(0)
  • 2020-12-02 15:19

    I've found this solution: chrome.tabs.update({ active: true }); This single line of code closes the browser action's popup window. You even don't need to pass tab.id there because by default it is set to id of the current tab. I run it in background page but seems it can be run everywhere in the extension.

    0 讨论(0)
  • 2020-12-02 15:20

    getSelected not working for me, so i found this solution

    chrome.tabs.create({url: 'https://www.google.com', active: false});
    

    in background.js you need just

    window.close();
    
    0 讨论(0)
提交回复
热议问题