How to close the current extension tab?

后端 未结 5 835
陌清茗
陌清茗 2020-12-18 18:46

I\'m trying to close the Options page of the extension. I have a Cancel button and I\'m using this code:

chrome.tabs.getCurrent(null, function(tab) {
  chrom         


        
相关标签:
5条回答
  • 2020-12-18 19:29

    Most likely you're running your code from a content script, where chrome.tabs is undefined. If this is the case, you can instead send a message to the background page and have the background page (which has access to chrome.tabs) make the call.

    Note that from a background page, you would use chrome.tabs.getSelected since getCurrent will return undefined.

    0 讨论(0)
  • 2020-12-18 19:33

    In the options page, you can just do:

    window.close()
    

    If you wanted to use chrome.tabs.getCurrent, do you have tabs defined in the permissions section within the manifest?

    0 讨论(0)
  • 2020-12-18 19:33

    Only this worked for me:

    chrome.tabs.query({ active: true }, function(tabs) {  
        chrome.tabs.remove(tabs[0].id);   
    }); 
    
    0 讨论(0)
  • 2020-12-18 19:40

    It works for me with one little fix:

    chrome.tabs.getCurrent(function(tab) {
        chrome.tabs.remove(tab.id, function() { });
    });
    

    Just make sure you're really running this code in options page of your extension and not just some HTML page, because chrome.tabs API is available only for extensions.

    0 讨论(0)
  • 2020-12-18 19:41

    I have time to continue my extension after a very long time. I checked the documentation again. So it was a inline script, that I had probably blocked with Content Security Policy in the manifest, because I hadn't read the documentation precisely.
    Now Chrome blocks inline scripts by default, so I'll have to fix it anyway.

    0 讨论(0)
提交回复
热议问题