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"
        ]
    }
}

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..");

出力

ページを更新しなくてもスクリプトが挿入されているのがわかります。

参考文献

于 2013-02-07T07:01:23.590 に答える
0

動的スクリプト インジェクションを使用する場合は、参照してください

于 2013-02-08T09:11:55.277 に答える