1

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

尝试了很多方法,但找不到注入多个 javascript 文件的方法。有没有人找到这样做的方法,或者提醒用户在运行扩展程序之前需要刷新事实页面?

谢谢

4

2 回答 2

0

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

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

示范

清单.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"
        ]
    }
}

背景.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
            });
        }
    });
});

注入.js

console.log("Injected..");

输出

您会看到注入脚本而无需刷新页面。

参考

于 2013-02-07T07:01:23.590 回答
0

您使用动态脚本注入,请参阅

于 2013-02-08T09:11:55.277 回答