javascript - 在“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 在嵌套函数中传递?“结果”论点没有它。
解决方案
试试这个 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);
}
推荐阅读
- php - 使用 Laravel MongoDB 获取每个组的最新行
- python - 以任意顺序传递可选参数
- android - 如何从资产文件夹中获取多个 PDF 文件
- php - 更新服务器上的代码时更改了存储权限
- node.js - 执行时间 Mongodb 0 但客户端有延迟
- javascript - 使用 GCloud KMS 生成加密密钥以访问私有存储库作为依赖项时出错
- tensorflow - tensorflow lite 添加自定义操作
- spring - 没有可用的“org.springframework.batch.core.Job”类型的合格 bean:预期单个匹配 bean,但找到了 2:
- wso2 - WSO2流处理器与mysql数据库集成不起作用
- anylogic - Anylogic:帮助根据计数释放队列