Передача идентификатора вкладки в 'chrome.tabs.executeScript ()' - PullRequest
0 голосов
/ 18 октября 2019

У меня есть расширение Chrome, которое представляет собой всплывающее окно. У него есть фоновый скрипт. В этом файле сценария я пытаюсь вставить код для выполнения во все открытые вкладки.

Вот как я это делаю.

for (var i = 0; i < tablist.length; ++i) {                
            chrome.tabs.executeScript(tablist[i].id, { file: "js/fuse.min.js"}, function (result) {
                chrome.tabs.executeScript(<i want to get tab id here>, { code: code });                
            });
        }

Я вложил функцию executeScript (), потому что мне требуется включить внешний файл.

Поскольку внутренняя функция является обратным вызовом, она асинхронная, и я не получу идентификатор табуляции от родительской функции.

Как я получу табид, передаваемый во вложенной функции? Аргумент «результат» не имеет его.

1 Ответ

1 голос
/ 18 октября 2019

Попробуйте этот трюк закрытия JavaScript:

for (var i = 0; i < tablist.length; ++i) { 
   (function(i) {
        chrome.tabs.executeScript(tablist[i].id, { file: "js/fuse.min.js"}, function (result) {
            chrome.tabs.executeScript(<i want to get tab id here>, { code: code });                
        });
     })(i);             
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...