現在選択されているページとタブに応じて、異なるコンテンツスクリプトをロードしたい。現在、3つのコンテンツスクリプトがあります。 2つを1つのページに使用し、3つ目を別のページに使用したいと思います。
1ページに属する:
content_script.js
load_content_script.js
Page2に属する:
newtab_content_script.js
今、私のマニフェストはこのように見えます
{
"name": "A plugin for AdData express. Generate an instant Excel document from the brands you check mark.",
"version": "1.0",
"background_page": "background.html",
"permissions": [
"cookies",
"tabs",
"http://*/*", "https://", "*", "http://*/*", "https://*/*",
"http://www.addataexpress.com", "http://www.addataexpress.com/*"
],
"content_scripts": [
{
"matches": ["<all_urls>","http://*/*","https://*/*"],
"js": ["load_content_script.js", "content_script.js", "newtab_content_script.js", "jquery.min.js", "json.js"]
}
],
"browser_action": {
"name": "AdData Express Plugin",
"default_icon": "icon.png",
"js": "jquery.min.js",
"popup": "popup.html"
}
}
マニフェストまたは他の場所でこれをどのように構成しますか?
完全を期すために、マニフェストからこれを行う方法は、「content_scripts」の下に必要な数のmatches
ブロックを配置することです。
"content_scripts": [
{
"matches": ["http://www.google.com/*"],
"css": ["mygooglestyles.css"],
"js": ["jquery.js", "mygooglescript.js"]
},
{
"matches": ["http://www.yahoo.com/*"],
"css": ["myyahoostyles.css"],
"js": ["jquery.js", "myyahooscript.js"]
}
],
マニフェストで指定されたURL式にバインドされたコンテンツスクリプトを使用するのではなく、 executeScript を使用する必要があります。これにより、JSスニペットまたはファイルをいつ挿入するかをプログラムで決定できます。
chrome.tabs.executeScript(null, {file: "content_script.js"});
プログラムインジェクション を使用する必要があります
chrome.tabs.executeScript(null, {file: "content_script.js"});