Why doesn't chrome.tabs.query() return the tab's URL when called using RequireJS in a Chrome extension?

后端 未结 2 1226
暗喜
暗喜 2020-12-24 14:24

I have a simple Chrome extension that adds a browser action. When the extension\'s popup is opened, it needs to access the current tab\'s URL. Since it doesn\'t need acces

2条回答
  •  孤城傲影
    2020-12-24 15:14

    You don't see a URL because you've only set the activeTab permission (not the tabs) permission AND the last focused window is the developer tools (for which you don't have activeTab access) (and since Chrome 41, devtools tabs/windows are invisible to extensions, so tabs will be an empty array).

    The good news is that this problem is specific to the devtools window being opened for your extension page, so the issue only occurs during development and not during actual use by users.

    Extension popups are associated with a window, so you can use chrome.tabs.query with currentWindow:true to get the correct answer:

    chrome.tabs.query({
        active: true,
        currentWindow: true
    }, function(tabs) {
        var tabURL = tabs[0].url;
        console.log(tabURL);
    });
    

提交回复
热议问题