У меня есть метод во время выполнения Javascript для вкладки, которую я хочу запустить из сценария содержимого моего расширения. При значении лица это вызывает передачу сообщений между контекстами, но я не могу найти документацию о сообщениях CS-to-tab, только с вкладками на CS или CS-в-фон. По сути, я хочу перевернуть раздел ссылки на контентные скрипты Communication with the embedding page.Отправка сообщений на страницу javascript из сценария содержимого
До сих пор, я прилагаю слушатель события к табов window
путем введения небольшого яваскрипта полезной нагрузки (это вызовет метод вкладок на правильный тип сообщения):
listenerScript = document.createElement('script');
listenerScript.textContent = "window.addEventListener('message',function(ev){console.log('New event: ' + ev);},false);console.log('installed');";
(document.head||document.documentElement).appendChild(listenerScript);
listenerScript.remove();
Этот слушатель зарегистрирован, однако я не могу понять, как вызвать его из моего сценария контента. window.postMessage()
в скрипте содержимого ничего не делает, и в документации только об использовании chrome.runtime
для создания порта, который предназначен для фоновых скриптов.
Как передать сообщения, как можно проще, из сценария контента на вкладку?
В документации, которую вы указали, отображается 'window.postMessage ({type:" FROM_PAGE ", текст:" Hello from the webpage! "}," * ");' И это работает для меня. Только не забудьте '' * "'. – wOxxOm
Из сценария содержания? Я попробовал этот точный код, который вы цитировали с помощью фрагмента выше, введенного на страницу, и ничего не записывает. Помните, что я пытаюсь перейти на страницу CS-> page, а не 'page-> CS'. – RedBassett
Вот мое тестовое расширение: https://github.com/redbassett/extension-message-test Я вижу сообщения журнала для инъецируемого скрипта и отправляемого сообщения, но прослушиватель событий никогда не запускается. – RedBassett