我有几个使用多个内容脚本的扩展。通过清单添加这些内容意味着首次安装扩展时它们不可用(用户必须首先刷新内容页面),因此扩展程序似乎不起作用,并且用户卸载它!
已经尝试了很多东西但是找不到注入多个javascript文件的方法。有没有人找到这样做的方法,或警告用户在扩展可以运行之前需要刷新页面的事实?
谢谢
答案 0 :(得分:0)
无需刷新页面,使用chrome.tabs.executeScript
注入所有旧页面。
检查示例实现的工作版本。
已注册的背景页面,并授予Chrome扩展程序的所有权限。
{
"name": "Inject Code",
"description": "http://stackoverflow.com/questions/14727263/inject-multiple-content-scripts",
"manifest_version": 2,
"version": "1",
"permissions": [
"<all_urls>",
"tabs"
],
"background": {
"scripts": [
"background.js"
]
}
}
使用查询API注入代码
document.addEventListener("DOMContentLoaded", function () {
//Fetch all inactive completly loaded tabs or use your own query
chrome.tabs.query({
active: false,
"status": "complete"
}, function (tabs) {
for (tab in tabs) { //It returns array of tabs
chrome.tabs.executeScript(tabs[tab].id, {
"file": "inject.js" //Inject Code
});
}
});
});
console.log("Injected..");
您会看到脚本被注入而无需刷新Page。
答案 1 :(得分:0)
请使用动态脚本注入see