В background выполняется код
//Открытие сайта в новой вкладке
window.open("google.ru");
//Вставка кода в активную вкладку и последующая отправка на внедрённый скрипт значения
chrome.tabs.executeScript({code:" document.createElement('script');script.src = chrome.extension.getURL('lib/inject/script.js');document.head.appendChild(script); "});
chrome.tabs.query({}, function(tabs) {
for (var i = 0; i < tabs.length; i++) {
chrome.tabs.sendMessage(tabs[i].id, {
command : "extEvSettingsUpdate"
});
}
});
Сам скрипт lib/inject/script.js
chrome.extension.onMessage.addListener(function(request, sender, callback){
if (!!request && !!request.command) {
if (request.command === "extEvSettingsUpdate") {
console.log("Принято!");
}
}
});
Этот скрипт выбивает ошибку Cannot read property 'onMessage' of undefined
В чём проблемесы?
Как передать значение из background.js во встраиваемый скрипт (lib/inject/script.js)?
Манифест
{
"name": "Test",
"description": "1234567890",
"externally_connectable": {
"matches": [ "https://*.google.com/*", ]
},
"version": "0.1",
"manifest_version": 2,
"icons":{
"128":"icons/red.png"
},
"browser_action": {
"default_title": "ThisIsGooood",
"default_icon": "icons/red.png",
"default_popup": "popup.html"
},
"background": {
"page":"background.html"
},
"web_accessible_resources" : ["lib/inject/script.js"],
"permissions": [
"*://google.com/*",
"tabs",
"background" ,
"storage",
"alarms",
"notifications",
"activeTab",
"webRequest",
"webRequestBlocking"
]