Не работает chrome.tabs.sendMessage()
Пробую сделать расширение для оперы, и пытаюсь воспользоваться функцией chrome.tabs.sendMessage() при открытии popup'а чтобы отправить сообщение на открытую вкладку (в моем случае это инстаграм). В результате появляется ошибка Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.
Нашел что такая ошибка появляется если страница не загрузилась до конца, но она загрузилась! По крайней мере стрелочка перестала крутиться)) Возможно это из-за того что инстаграм использует ajax подгружку? Буду очень рад если подскажите что-то. Заранее спасибо!
background.js:
chrome.extension.onConnect.addListener(function(port){
port.onMessage.addListener(function(obj) {
chrome.tabs.query({currentWindow: true, active: true},function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {message: "hello"}, function(response){});
});
});
});
popup.js:
var port = chrome.runtime.connect({name: "popup"});
port.onMessage.addListener(function(msg) {
});
port.postMessage(true);
content-script.js:
var port = chrome.runtime.connect({name: "app"});
port.onMessage.addListener(function(msg) {
console.log(msg);
});
Manifest.json
{
"manifest_version": 2,
"name": "Instagram",
"version": "1.0",
"description": "Instagram",
"optional_permissions": ["webNavigation", "webRequest", "webRequestBlocking" ],
"options_page": "main.html",
"permissions": [ "cookies", "tabs", "activeTab", "storage", "downloads", "*://www.instagram.com/*"],
"web_accessible_resources": [ "resources/*" ],
"icons": {
"128": "icons/128.png",
"16": "icons/16.png",
"48": "icons/48.png"
},
"content_scripts": [
{
"matches": [ "*://www.instagram.com/*"],
"js": [ "content-script.js", "lib/jquery-3.6.0.min.js"]
}
],
"browser_action": {
"default_icon": {
"19": "icons/19.png",
"38": "icons/38.png"
},
"default_title": "Instagram",
"default_popup": "popup.html"
},
"background": {
"scripts": ["background.js"],
"persistent" :false
}
}