首页 > 解决方案 > 在“chrome.tabs.executeScript()”中传递选项卡 ID

问题描述

我有一个 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()”,因为我需要包含一个外部文件。

由于内部函数是回调,它是异步的,我不会从父函数中获取标签 ID。

如何让 tabid 在嵌套函数中传递?“结果”论点没有它。

标签: javascriptgoogle-chrome-extensioncallback

解决方案


试试这个 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);             
}

推荐阅读