Узнайте вкладку, которая отправила ответ в расширении Chrome - PullRequest
2 голосов
/ 20 мая 2011

В фоновом скрипте я отправляю запросы на каждую вкладку.У меня вопрос, как мне получить вкладку, с которой пришел ответ в функции обратного вызова?Поскольку 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 Ответ

3 голосов
/ 20 мая 2011

Вам необходимо создать замыкание:

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));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...