Расширение Chrome: загрузка различных сценариев контента
Я хочу загрузить другой контент script в зависимости от выбранной страницы и вкладки. Прямо сейчас у меня есть три сценария содержания. Я хочу использовать два из них для одной страницы, а третий для другой страницы.
Принадлежность к странице 1:
content_script.js
load_content_script.js
Принадлежность к странице 2:
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"
}
}
как бы я структурировал это в манифесте или в другом месте?
Ответы
Ответ 1
Вместо использования сценариев контента, связанных с выражениями URL, указанными в манифесте, вы должны использовать executeScript, что позволяет программным образом решать, когда вводить JS фрагмент или файл:
chrome.tabs.executeScript(null, {file: "content_script.js"});
Ответ 2
Просто в интересах полноты, как вы должны сделать это из манифеста, нужно иметь как можно больше блоков matches
в разделе "content_scripts":
"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"]
}
],
Ответ 3
вы должны использовать программную инъекцию
chrome.tabs.executeScript(null, {file: "content_script.js"});