【发布时间】:2013-12-07 20:10:36
【问题描述】:
我有很多代码只想在用户单击扩展图标时运行。我宁愿不为每个打开的标签运行它。因此,在清单文件中使用 content_scripts 条目并不是最好的选择。但是,当我以编程方式注入脚本时,我无法在开发人员工具的脚本列表中看到内容脚本。我现在可以使用内容脚本进行开发,但在某些时候我想避免它。
我在所有地方都运行日志记录,并执行消息传递。所以我很清楚这些脚本已成功注入并运行,但它们根本无法显示在文件列表中。
在代码中,以下工作只是花花公子(在清单中):
{
// ...
"content_scripts": [{
"matches": ["<all_urls>"],
"css": ["style/content.css"],
"js": [
"closure/goog/base.js",
"closure/goog/deps.js",
"util.js",
"AddressRE.js",
// ...
"makeRequests.js"
]
}]
}
在 onClick 之后执行以下操作不会:
function executeNextScript(tabId, files, callback) {
chrome.tabs.executeScript(tabId, {
file: files.pop()
}, function () {
if (files.length)
executeNextScript(tabId, files, callback);
else
callback();
});
}
function executeScripts(tabId, callback) {
var files = [
"closure/goog/base.js",
"closure/goog/deps.js",
"util.js",
// ...
"makeRequests.js"
];
executeNextScript(tabId, files.reverse(), callback);
}
【问题讨论】: