Я получил эту ошибку с кодом ниже:ошибка обмена данными между backgroundjs и contentScriptjs
Could not establish connection. Receiving end does not exist.
мои background.js
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {greeting: "hello"}, function(response) {
if(chrome.runtime.lastError) {
console.error(chrome.runtime.lastError.message);
return;
}
console.log(response.farewell);
console.log('ytr');
});
});
и мои contentScript.js
chrome.extension.onMessage.addListener(function (request, sender, sendResponse) {
alert(request.greeting);
});
часть моей manifest.json
"background": {
"scripts": ["background.js"]
},
"permissions": [
"https://*/*",
"http://*/*",
"activeTab",
"storage",
"tabs"
],
"content_scripts": [
{
"matches": ["https://*/*", "http://*/*"],
"js": ["jquery.js","contentScript.js"],
"css": ["style.css"]
}
]
Интересно, что в моем случае не так.
Я не понимаю, что вы имеете в виду, бегите туда? –
Я имею в виду, что проблема возникнет, если консоль разработчика открыта. Например, консоль разработчика для веб-страницы - это то, что открывается, если вы перейдете в настройки Chrome, выберите «Дополнительные инструменты», а затем выберите «Консоль разработчика». Или вы можете просмотреть консоль разработчика вашего расширения, перейдя в chrome: // расширения, установите флажок «режим разработчика» и нажмите ссылку background.js, чтобы открыть консоль разработчика для вашего расширения. Если это активные окна, sendMessage покажет ошибку, которую вы видите. Попробуйте использовать команду console.log. Я предложил посмотреть URL-адрес, по которому отправляется сообщение – donaddon