Сообщение от внедренного скрипта к контентному скрипту не работает - PullRequest
0 голосов
/ 02 декабря 2018

Я создаю расширение Chrome, и мне нужно установить двустороннюю связь между injected.js и content_script.js.У меня есть разрешение на использование tabs в manifest.json.Для начала я попытался сделать сообщение от injected до content_script.Я использую это:

// Content script
window.addEventListener("getChromeData", function(data) {
  console.log( data ) // CustomEvent {isTrusted: false, detail: null, type: "getChromeData", target: Window, currentTarget: Window, …}
}, false);

// Injected script
window.dispatchEvent(new CustomEvent("getChromeData", {data: 'whatever'}));

Проблема в том, что у меня есть ответ в скрипте контента, но не тот data объект, который я отправляю с injected.Я получил только CustomEvent объект без этих данных.

Может ли кто-нибудь провести меня через это, что я должен сделать, чтобы получить одностороннее сообщение и, возможно, двустороннее, от content_script до injected?

Редактировать:

После предложения отредактировать data в detail свойство, вот что у меня есть

// Injected script
window.dispatchEvent(new CustomEvent("getChromeData", {detail: {
        first: 're',
        two: 'two'
}}));

// Content script
window.addEventListener("getChromeData", function(data) {
  console.log( data ) // Still getting CustomEvent {isTrusted: false, detail: null, type: "getChromeData", target: Window, currentTarget: Window, …}
}, false);

Я скомпилировал, перезагрузил расширение и перезагрузил страницу.Тем не менее, мой возвращаемый объект имеет detail, который указывает на значение null.

1 Ответ

0 голосов
/ 02 декабря 2018

Я решил проблему.Что я сделал, так это то, что удалил и установил расширение, и оно заработало.Это была моя последняя попытка решить проблему, и это сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...