如何在Chrome扩展程序中查询已更改的已知标签ID的网址?

时间:2016-09-17 11:23:37

标签: javascript google-chrome-extension

情况是:

我查询了标签,并知道活动标签的ID:

chrome.tabs.query({active: true, currentWindow: true}, function(arrayOfTabs) {

    activeTab = arrayOfTabs[0];
    tabId = activeTab.id;
    ...
}

并注入了一些内容脚本:

    chrome.tabs.executeScript(tabId, {file: "content.js"});

可能会将网址更改为新位置。

有线的是activeTab.url的返回值保持不变。

那么有没有办法获得知道标签ID的新网址。或者我必须再次查询选项卡并找到哪个选项卡与已知ID匹配(当前活动选项卡可能不是前一个选项卡),获取新URL?

非常感谢!

1 个答案:

答案 0 :(得分:2)

  1. tabs数组参数只是为回调而创建的临时副本,因此activeTab.url是选项卡URL的副本,它不是指向当前选项卡的自刷新指针。
  2. 使用chrome.tabs.get

    chrome.tabs.get(tabId, function(tab) {
        if (chrome.runtime.lastError) {
            console.log('Tab %d was not found', tabId);
            return;
        }
        console.log('Async callback got tab %d URL: %s', tabId, tab.url);
    });
    

    "permissions"中您需要"tabs""activeTab"如果这是一个有效标签,并且您的扩展程序是通过用户手势调用的。