複数のコンテンツ スクリプトを使用する拡張機能がいくつかあります。これらをマニフェスト経由で追加すると、拡張機能が最初にインストールされたときに使用できないことを意味します (ユーザーは最初にコンテンツ ページを更新する必要があります)。
多くのことを試しましたが、複数の JavaScript ファイルを挿入する方法が見つかりません。これを行う方法、または拡張機能を実行する前にファクトページを更新する必要があることをユーザーに警告する方法を見つけた人はいますか?
ありがとう
複数のコンテンツ スクリプトを使用する拡張機能がいくつかあります。これらをマニフェスト経由で追加すると、拡張機能が最初にインストールされたときに使用できないことを意味します (ユーザーは最初にコンテンツ ページを更新する必要があります)。
多くのことを試しましたが、複数の JavaScript ファイルを挿入する方法が見つかりません。これを行う方法、または拡張機能を実行する前にファクトページを更新する必要があることをユーザーに警告する方法を見つけた人はいますか?
ありがとう
ページを更新する必要はありません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..");
ページを更新しなくてもスクリプトが挿入されているのがわかります。
動的スクリプト インジェクションを使用する場合は、参照してください