Chrome扩展程序:将已打开的标签与background.js中已加载的标签匹配

时间:2015-01-30 18:13:41

标签: google-chrome-extension

我有Chrome扩展程序。我需要将一个变量传递给打开的选项卡,然后在选项卡的网页加载完成后使该变量可用。我需要能够将打开的选项卡与加载的选项卡进行唯一匹配。

chrome.browserAction.onClicked.addListener(function(tab) {

    url = "my_url";
    unique_id = "some id"; // I need to pass this on
    chrome.tabs.create({ url: url }, function(tab){});

    // I cannot use any global vars because this function actually loops and opens lots of tabs.

});

// Called when page has finished loading
chrome.webNavigation.onCompleted.addListener(function(tab) {

    if(tab.frameId == 0){ 
       // I need to identify the tab (unique_id) that was created in chrome.browserAction.onClicked.addListener()
       // tab.url won't work because it's different if the orginal url was redirected
    }

});

1 个答案:

答案 0 :(得分:2)

Tabs的标签ID为unique within a browser session

chrome.browserAction.onClicked.addListener(function(tab) {

    url = "my_url";
    chrome.tabs.create({ url: url }, function(tab){
        unique_id = tab.id; // I need to pass this on
    });

});

// Called when page has finished loading
chrome.webNavigation.onCompleted.addListener(function(details) {

    if(details.frameId == 0){ 
       unique_id = details.tabId;
    }

});