找出以chrome扩展名发送回复的标签

时间:2011-05-19 21:46:04

标签: google-chrome google-chrome-extension

在后台脚本中,我向每个标签发送请求。我的问题是如何从回调函数中获取响应来自的选项卡?由于sendRequest是异步的,因此tab.id不能在callbock中使用。

for (var i = 0, tab; tab = tabs[i]; i++) {
    chrome.tabs.sendRequest(tab.id, {play:0}, function(response) {
        // do something here
        // how do i get the tab.id from which the response come from?
    });
}

1 个答案:

答案 0 :(得分:3)

你需要创建闭包:

for (var i = 0, tab; tab = tabs[i]; i++) {
    chrome.tabs.sendRequest(tab.id, {play:0}, (function(tabId) { 
        return function(response) {
            //tabId stores current tab id
            console.log("response from:", tabId);
        }
    })(tab.id));
}