Непроверенная среда выполнения lasterror не может установить соединение принимающая сторона не существует что это такое
Обновлено: 24.11.2024
Расширение Chrome: ошибка порта: не удалось установить соединение. Принимающий конец не существует. (6)
sendMessage и onRequest несовместимы.
Если вам нужна поддержка Chrome 19 и более ранних версий, используйте onRequest и sendRequest :
Для Chrome 20–25 используйте chrome.extension.onMessage и chrome.extension.sendMessage :
Примечание. В Chrome 26 устаревшие методы по-прежнему поддерживаются, хотя и не задокументированы. Если у вас есть возможность, обновите свое расширение, чтобы использовать новые методы, чтобы гарантировать, что ваше расширение по-прежнему будет работать в будущем.
См. этот ответ для кода для создания, совместимого с Chrome 20+.
При попытке установить связь между контентом и фоновым скриптом я получаю следующие ошибки:
background.js
streamcloud.js
и мой файл manifest.json
Я нашел решение добавить background_page: "background.html" с пустым background.html, но так как background_page не поддерживается начиная с manifest_version: 2, я не могу его использовать.
Также обратите внимание на изменение пути API с
- chrome.extension.onRequest
- chrome.extension.sendRequest
позволит вам не беспокоиться о том, почему, например. chrome.extension.onMessage не работает!
Поскольку вы используете sendMessage, а не sendRequest.
В новой версии Chrome обновлен анализ сообщений. sendRequest и onRequest устарели. Рекомендуется использовать sendMessage и onMessage.
Прошло некоторое время с тех пор, как мне приходилось иметь дело с расширениями Chrome. Я помню, что это была настоящая борьба, прежде чем я понял, как все работает. Чтобы ваше расширение могло взаимодействовать с браузером, вы можете легко использовать свой javascript/фоновый файл, а для связи с веб-страницей вам нужно использовать chrome.tabs.executeScript, но это действительно сложно и может быть настоящей головной болью. Я предлагаю вам пройти экскурсию по расширениям Google и дать действительно хороший обзор их API, там все есть! Желаю вам удачи и надеюсь, что этот ответ помог вам! :Р
Расширения Chrome — onRequest/sendRequest и onMessage/sendMessage
Контексты и методы связи между действием браузера, фоновыми сценариями и сценариями содержимого расширений Chrome?
Как разработчик расширений для Chrome, вы можете различать три разные среды.
- Код расширения, выполняется в процессе вашего расширения Chrome
-
/страница события/всплывающее окно действия страницы
- Страница в информационной панели.
- Вкладки, фрейм верхнего уровня которых представляет собой документ из вашего расширения, например страница параметров. , запущенный в процессе вкладки.
- Код, не являющийся расширением, выполняется в процессе вкладки (внедряется скриптами содержимого).
Обратите внимание, что если страница без расширения встраивает , то page.htm не рассматривается как часть расширения, поскольку все фреймы на вкладке используют один и тот же процесс. В этом случае процесс без расширения -обработать приложение .
Поскольку весь код расширения выполняется в одном процессе, они могут обращаться друг к другу с глобальным объектом окна. Эта функция малоизвестна, но позволяет напрямую манипулировать объектами JavaScript и DOM в рамках одного и того же процесса расширения. Как правило, лучше не использовать этот метод, а вместо этого использовать API для передачи сообщений.
Чтобы этот раздел был коротким, я намеренно ограничил пример кода демонстрацией доступа к другим глобальным объектам окна. Вы можете использовать эти методы для определения глобального метода, установки глобальной переменной, вызова глобальной функции и т. д.
. при условии, что страница открыта. Кто-то думал, что всплывающее окно всегда доступно. Это не так, когда всплывающее окно закрывается, глобальный объект удаляется!
Методы sendMessage принимают необязательную функцию, которая передается в качестве третьего аргумента события onMessage.
Предыдущий пример показывает очевидное поведение. Все становится сложнее, когда вы хотите отправить ответ асинхронно, например, если вы хотите выполнить запрос AJAX для получения некоторых данных. Когда функция onMessage возвращается без вызова sendResponse, Chrome немедленно вызывает sendResponse. Поскольку sendResponse можно вызвать только один раз, вы получите следующую ошибку:
Сделайте так, как предлагает ошибка, добавьте return true; внутри прослушивателя событий onMessage:
В этом разделе я объяснил практическое применение простой одноразовой передачи сообщений. Если вы хотите узнать больше о долгоживущих каналах сообщений или обмене сообщениями между расширениями, прочтите руководство из официальной документации.
Название API передачи сообщений претерпело несколько изменений. Имейте это в виду, если вы читаете старые примеры. Заметки об истории и совместимости можно найти здесь.
Возможно общение со страницей.Apsillers создал отличный ответ, в котором объясняется, как настроить канал связи между страницей (без расширения) и сценарием контента. Прочтите его ответ на странице Может ли сайт вызывать расширение браузера?
У меня возникает следующая ошибка в консоли Chrome Dev Tools при каждой загрузке страницы моего приложения Node/Express/React:
Unchecked runtime.lastError: Не удалось установить соединение. Принимающая сторона не существует
Кто-нибудь знает, что происходит? Большинство других найденных мной тем, в которых возникает эта ошибка, по-видимому, связаны с тем, что кто-то пытается разработать расширение для Chrome, и даже в этом случае у них очень мало ответов.
Ответы на этот вопрос все типа "Это не было вызвано моим кодом. Мне пришлось отключить расширение XY". Если вы ищете решение с точки зрения разработчика, см. приведенную выше ссылку на вопросы и ответы.
Что решило мою проблему, так это закрыть Chrome и снова открыть его. Сервер работал во время этого процесса. Думаю, обновление страницы тоже работает нормально
23 ответа 23
Я получал точно такую же ошибку (за исключением того, что в моем приложении нет серверной части и клиентской части React), и я обнаружил, что она исходила не от моего приложения, а на самом деле от "Скорость видео". Расширение «Контроллер» для Chrome. Если вы не используете это расширение, попробуйте отключить все свои расширения, а затем включить их по одному?
Я обнаружил ту же проблему при разработке расширений Chrome. Наконец-то я нашел ключевую проблему.
Unchecked runtime.lastError: Не удалось установить соединение. Принимающая сторона не существует
Основная проблема заключается в том, что когда background.js отправляет сообщение на активную вкладку через chrome.tabs.sendMessage, content.js на странице не готов или не перезагружается. При отладке. Мы должны убедиться, что content.js активен. И это не может быть страница без обновления, старые страницы не обновляют сам js
Вот мой код:
В приведенном выше примере sendResponse был вызван синхронно. Если вы хотите асинхронно использовать sendResponse, добавьте return true; в обработчик события onMessage. Итак, вы правы.
У меня такой же код, но ошибка все равно возникает. Как вы решаете проблему «Мы должны убедиться, что content.js активен»?
Ошибка часто возникает из-за расширения Chrome. Попробуйте отключить все свои расширения, проблема должна исчезнуть.
Для меня верно. Я видел это с каждым встроенным iframe YouTube при включении расширения Youtube Playback Speed Control.
Решение
У вас открыто окно с ошибкой консоли, откройте второе новое окно.
Во втором окне перейдите по адресу: chrome://extensions
Отключите каждое расширение, переключив его (синий ползунок в правом нижнем углу каждой карточки), и обновите окно с помощью консоли после переключения каждого расширения.
Как только ошибка исчезнет, удалите расширение.
Основная проблема заключается в том, что поведение Chrome API изменилось, и вам нужно найти обходной путь для этого.
Похоже, вы скрываете ошибку, а не исправляете ее. Когда я получил эту ошибку, это означало, что сообщение не было получено, и вместо этого я получил пустой ответ.
@mFritz - причина, по которой вы получаете пустой ответ, заключается в том, что либо расширение недоступно, либо оно не отвечает на сообщения из-за какой-то ошибки. Я не скрываю ошибки. Вы можете создать и использовать блок else, если вам нужно обработать ошибку
Удаление расширения Chrome "Udacity Frontend Feedback" решило проблему для меня.
🙂простой ответ:🙂
если у вас нет ответа от другого конца, он также сообщит вам Принимающий конец не существует.
подробный ответ:
если у вас нет ответа с другого конца, он также сообщит вам, что принимающий конец не существует. поэтому, если у вас есть какая-либо функция callBack, которая должна использовать ответ в вашей части .sendMessage, вы должны либо удалить ее, либо обработать ее, если у вас, вероятно, нет ответа с другой стороны.
если бы я хотел переписать раздел «Простые одноразовые запросы» в документах о передаче сообщений API Google, я напишу его с обработчиками ошибок для функций обратного вызова в методах отправки сообщений, например:
Отправка запроса из скрипта контента выглядит следующим образом:
Отправка запроса из расширения в скрипт контента выглядит очень похоже, за исключением того, что вам нужно указать, на какую вкладку его отправить. В этом примере демонстрируется отправка сообщения в скрипт содержимого на выбранной вкладке.
Непроверенная среда выполнения.lastError: Could not establish connection. Receiving end does not exist.
Google Chrome informa un error
- Versión 73.0.3683.103 (versión oficial) (32 bits)
- El contenido del error es el siguiente
- Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.
Motivo: problema de extensión
- Sugerencia: abierta chrome://extensions/ , Apague la solución de problemas uno por uno
- En mi caso, se descubrió que las siguientes extensiones eran las culpables y finalmente se cerraron.
Recomendación Inteligente
Interbloqueo de subprocesos múltiples
Bloqueo de orden de bloqueo correrjstack -l 9972 Los resultados son los siguientes: Java stack information for the threads listed above: ================================================== padding-top:6px;padding-bottom:6px;">
kubernetes (tres) --- lista de recursos
kubernetes (3) -lista de recursos Directorio de artículos kubernetes (tres) --- lista de recursos 1. Comprensión de conceptos básicos 2. El formato de la lista de recursos 3. Prop.
Mesa de cadena de plantillas de clist
STL nos proporciona una variedad de contenedores, como vector, lista, pila, deque, arco, mapa y su genicización de plantillas, se facilita considerablemente por el proceso de escritura. Tomando.
君山白鹭 于 2022-03-03 13:07:39 发布 9 收藏
控制台报错:Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.
报错如下:
关闭插件:
02-04 2185
本文目录 一、背景描述 二、报错原因 三、解决方案 一、背景描述 在做公司网站的时候,上午页面还好好的,然后中午我在Chrome浏览器安装了一个 CSDN开发助手 的插件,然后同一个页面,没有修改过,下午从Chrome浏览器刷新页面发现报错,报错信息如下:Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist. 可以看下报错的截图信息: 二、报错原因 原因是我在Ch
09-06 1万+
07-08 470
10-14 1189
chrome报错,这个可能是扩张插件的问题,把插件一个一个关了就OK了 Unchecked runtime.lastError: Could not establish connection. Receiving end
05-20 3万+
04-26 5824
chrome插件编写时遇到错误 Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist. 查询了多个错误 后续解决 错误原因归纳如下 1 当前页面并不是可用网页页面 如打开的是扩展程序页面 或者 新建标签页面 2 manifest.json 中"co.
03-27 1万+
06-02 2438
05-17 4192
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
01-25 38
Читайте также: