Сообщения о расширении Chrome срабатывают несколько разJavascript

Форум по Javascript
Ответить
Гость
 Сообщения о расширении Chrome срабатывают несколько раз

Сообщение Гость »


Я делаю свое первое расширение для Chrome и заметил, что сообщения, отправляемые с моей страницы popup.html, дублируются в моем прослушивателе событий сообщений content.js. Я регистрировал в консоли «отправку сообщения» перед отправкой каждого сообщения и «получение сообщения» перед каждым сообщением, и я не понимаю, как сообщения дублируются. Я также проверил документацию разработчика Chrome на предмет sendMessage и onMessage, и там указано, что прослушиватель onMessage должен запускаться только один раз для каждого события sendMessage.

Будем благодарны за любую помощь.

popup.html

Практика обмена сообщениями Практика обмена сообщениями content.js

chrome.runtime.onMessage.addListener( функция (запрос, отправитель, sendResponse) { console.log('сообщение получено') console.log(запрос); } ); popup.js

var messageButton = document.querySelector("#send-message"); messageButton.onclick = функция() { chrome.tabs.query({currentWindow: true, active: true}, функция (вкладки) { chrome.tabs.executeScript( tabs[0].id, {файл: "content.js"} ) console.log("отправка сообщения") chrome.tabs.sendMessage(tabs[0].id, «строковое сообщение») }); } background.js

chrome.declarativeContent.onPageChanged.removeRules(undefined, function() { chrome.declarativeContent.onPageChanged.addRules([{ условия: [новый chrome.declarativeContent.PageStateMatcher({ pageUrl: {hostEquals: 'stackoverflow.com'}, })], действия: [новый chrome.declarativeContent.ShowPageAction()] }]); }); manifest.json
{ "name": "Практика отправки сообщений", "версия": "1.0", «manifest_version»: 2, "description": "Простой способ обмена сообщениями с помощью API Chrome", "permissions": ["declarativeContent", "activeTab"], "фон": { "scripts": ["background.js"], «постоянный»: правда }, "page_action": { "default_popup": "popup.html", "scripts": ["content.js"], "соответствует": ["http://*/*","https://*/*"] } }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»