注入多个内容脚本

时间:2013-02-06 10:53:51

标签: google-chrome-extension

我有几个使用多个内容脚本的扩展。通过清单添加这些内容意味着首次安装扩展时它们不可用(用户必须首先刷新内容页面),因此扩展程序似乎不起作用,并且用户卸载它!

已经尝试了很多东西但是找不到注入多个javascript文件的方法。有没有人找到这样做的方法,或警告用户在扩展可以运行之前需要刷新页面的事实?

谢谢

2 个答案:

答案 0 :(得分:0)

无需刷新页面,使用chrome.tabs.executeScript注入所有旧页面。

检查示例实现的工作版本。

示范

的manifest.json

已注册的背景页面,并授予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"
        ]
    }
}

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
            });
        }
    });
});

inject.js

console.log("Injected..");

输出

您会看到脚本被注入而无需刷新Page。

参考

答案 1 :(得分:0)

请使用动态脚本注入see