Chrome 扩展程序端口错误:无法建立连接。接收端不存在

2024-04-28

当我尝试从弹出窗口向我的内容脚本发送消息时,出现此错误。我想做的是从 content.js 获取当前选项卡的文档并将其发送到弹出窗口。我该如何修复这个错误?

{
  "manifest_version": 2,
  "name": "Chrome Snapshot",
  "description": "Save images and screenshots of sites to Dropbox.",
  "version": "1.0",
  "permissions": [
    "<all_urls>",
    "tabs"
  ],
  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "html/popup.html"
  },
  "background": {
    "scripts": [
      "vendor/dropbox.min.js",
      "vendor/jquery-2.0.2.min.js"
    ],
    "persistant": false
  },
  "content_scripts" : [{
    "all_frames": true,
    "matches" : ["*://*/*"],
    "js" : ["js/content.js"],
    "run_at": "document_end"
  }]
}

js/popup.js

chrome.runtime.sendMessage({message: 'hi'}, function(response) {
  console.log(response);
});

js/内容.js

chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
  console.log('message', message);
  sendResponse({farewell: 'goodbye'}); 
});

Edit #1仍然遇到同样的错误Port error: Could not establish connection. Receiving end does not exist. miscellaneous_bindings:235 chromeHidden.Port.dispatchOnDisconnect

修复了清单中“持续”的拼写错误
更新了 js/popup.js

chrome.tabs.query({'active': true,'currentWindow':true}, function(tab){
    console.log('from tab', tab[0]);
    chrome.tabs.sendMessage(tab[0].id, {message: 'hi'}, function(response){
      console.log(JSON.stringify(response));
    });
  });

你需要使用chrome.tabs.sendMessage http://developer.chrome.com/extensions/tabs.html#method-sendMessage将消息发送到内容脚本。来自chrome.runtime.sendMessage http://developer.chrome.com/extensions/runtime.html#method-sendMessageChrome 开发者网站上的规范:

请注意,扩展程序无法使用此方法向内容脚本发送消息。要将消息发送到内容脚本,请使用 tabs.sendMessage。

如果这对您来说不是一个好的选择,您可以让每个内容脚本打开一个到您的后台页面的端口(这可能需要持久),然后让您的弹出页面向您的后台页面发送一条消息,该消息将中继该消息通过每个端口发送到所有内容脚本,告诉它们将消息发送回弹出页面。 (使用 chrome.runtime.connect。)

此外,您在清单文件中拼错了“持久”。我不希望您必须花半个小时来研究代码才能发现问题所在。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Chrome 扩展程序端口错误:无法建立连接。接收端不存在 的相关文章

  • 如何使用expressjs发送多个文件?

    我希望能够发送许多文件 如果可能的话 发送整个目录 以便我可以在从 html 文件调用的其他 js 文件中访问它 const app require express const http require http Server app co
  • 如何在 moment.js 中将日期格式化为 ISO 8601?

    这个文档提到moment ISO 8601作为格式化选项 从 2 7 0 http momentjs com docs parsing special formats http momentjs com docs parsing speci
  • 我们在哪里/什么时候使用 JSON?

    你能告诉我 JSON 有什么用 在 Javascript 和 PHP 中 当我们需要 JSON 方法时 我从以下链接中阅读 但是 我没有获得有关任何项目的 JSON 实现的任何信息 http www json org js html htt
  • 如果列表中的某个字符位于该字符之前,请选择该字符

    我有这个正则表达式 a z s gmi 该正则表达式选择 从我的文字中 sme a eliezovce 2015 Spolo ne pre Eur pu Osl vili aj 940 但我只想选择 没有 如果列表中的某些字符 a z 之前
  • WebPack 源映射令人困惑(重复文件)

    我决定在我今天正在启动的一个新项目上尝试 WebPack 并且我从源映射中得到了非常奇怪的行为 我在文档中找不到任何相关信息 在浏览 StackOverflow 时也找不到其他人遇到此问题 我目前正在查看由以下公司制作的 HelloWorl
  • 使用 Bluebird.js 和 Twitter 流的 Promise 和流

    我对 Promises 和 Node 非常陌生 并且对在流中使用 Promise 感到好奇 我可以承诺直播吗 使用 Bluebirdjs 和 Twit 模块 我有以下内容 var Twit require twit var Promise
  • 移动浏览器上的 Javascript / jQuery 页面更改事件

    我正在设计一个移动网站 同时考虑所有领先的浏览器 Safari Chrome Dolphin Opera 我想显示一个 正在加载 元素页面导航 更改 请求新页面 我无法在锚标签上使用点击事件 因为有很多锚标签存在preventDefault
  • Google javascript 登录 api:无法离线访问

    我正在尝试为服务器端应用程序实现 Google 登录 如 Google 文档中所示 服务器端应用程序的 Google 登录 https developers google com identity sign in web server si
  • ELEMENT.style.color 在 IE 中不起作用

    在一个小型 Web 应用程序中 我使用 JavaScript 在文本框中设置一些文本及其颜色 在下面的片段中 el 是我的对象 这段代码在 Firefox Opera 和 Safari 下产生了正确的效果 但在 IE 下却没有这样的运气 我
  • 角度引导手风琴数据绑定问题

    我有 2 个相同型号的下拉菜单 一个位于手风琴内部 另一个位于外部 外部下拉菜单在 2 路数据绑定方面工作良好 但手风琴内部的下拉菜单似乎只有 1 路绑定 换句话说 在 UI 中选择并不会设置模型值 我找到了一个建议here https s
  • 如何将多个文件上传到Firebase?

    有没有办法将多个文件上传到 Firebase 存储 它可以在一次尝试内上传单个文件 如下所示 fileButton addEventListener change function e Get file var file e target
  • Node.js 循环发送 http 请求

    我实际上遇到了使用 node js 执行的 javascript 代码的问题 我需要循环发送http请求到远程服务器 我在代码中设置了www google ca 这是我的代码 var http require http var option
  • 如何在正则表达式中区分数字和ip地址?

    例如 如果我们查看 5 56 和 183 55 0 144 基本上 当你做这样的事情时 d d 它匹配 5 56 189 55 和 0 144 有没有办法通过正则表达式仅匹配数字而不匹配 ip 地址的部分 我尝试使用前瞻 但我不知道它应该是
  • JavaScript - 类根据条件扩展

    事情是这样的 我有一个名为 A 的主课 我希望这个班级能够扩展 B 级 class A extends B 但事实上 我希望 B 类在特定条件下扩展 C D 或 E class B extends B1 or class B extends
  • 如何在 Web 应用程序中使用 Javascript 安全地访问 Windows Azure 移动服务?

    我需要一本 web javascript 安全入门书 根据如何使用 Windows Azure 移动服务的 HTML JavaScript 客户端 http www windowsazure com en us develop mobile
  • jqPlot DateAxis tickInterval 不起作用

    我试图每月绘制一个包含单个数据点的图表 我会在每个月的第一天将其作为一个点发送到 jqPlot jqplot actualChart 2011 10 01 0 296 2011 11 01 0 682 title programSelect
  • 关于 Node.js Promise then 和 return?

    我对承诺感到困惑 I use 那么就答应没有返回像这样 new Promise resolve reject gt resolve 1 then v1 gt console log v1 new Promise resolve reject
  • 如何使用正则表达式解析 OCC 选项符号?

    OCC 选项符号由 4 部分组成 标的股票或 ETF 的根代码 用空格填充至 6 个字符 到期日期 6 位数字 格式为 yymmdd 期权类型 P 或 C 用于看跌或看涨期权 执行价格 为价格 x 1000 前面填充 0 至 8 位数字 举
  • 如何设置 .eslintrc 来识别“require”?

    我是新来的ESLint http eslint org 并且我已经成功地将 ESLint 与IntelliJ https www jetbrains com idea 开箱即用 我的 ESLint 集成无法识别node 但对文档的基本审查表
  • 限制在三角形内

    我正在寻找一段通用代码 javascript 它可以与 jquery UI 一起使用来限制三角形内 div 的移动 拖动 与此类似 http stackoverflow com questions 8515900 how to constr

随机推荐

  • 学习 BDD、TDD(ruby、C#、javascript)的好资源

    学习 BDD 和 TDD ruby C javascript 有哪些好的资源 现在用什么好的框架 See 为什么我应该练习测试驱动开发以及应该如何开始 https stackoverflow com questions 4303 why s
  • 使用VBA抓取实时数据

    我想从中抓取实时数据https iboard ssi com vn bang gia hose https iboard ssi com vn bang gia hose使用VBA 我的代码如下 但它不会返回其中包含数据的 html 文件
  • 什么是依赖注入的 Pythonic 方式?

    介绍 对于 Java 依赖注入作为纯 OOP 工作 即您提供要实现的接口 并在框架代码中接受实现定义的接口的类的实例 现在对于 Python 您可以执行相同的操作 但我认为该方法对于 Python 而言开销太大 那么如何以 Pythonic
  • Swashbuckle IDocumentFilter 实现 - 如何将 ActionDescriptor.MethodInfo 链接到操作

    项目 ASP Net Core 2 2 Web API 软件包 Swashbuckle AspNetCore 4 0 1 我正在写一个实现Swashbuckle AspNetCore SwaggerGen IDocumentFilter它在
  • 缓慢的 data.frame 行分配

    我正在使用 RMongoDB 需要用查询的值填充空的 data frame 结果相当长 大约有 200 万个文档 行 当我进行性能测试时 我发现将值写入行的时间随着数据帧的维度的增加而增加 也许这是一个众所周知的问题 而我是最后一个注意到它
  • 当元素被覆盖时取消 mouseout 事件

    希望这个 JSFiddle 能比我的话更好地说明这个问题 http jsfiddle net pmwRc 6 http jsfiddle net pmwRc 6 当地图悬停时 我在图像地图上显示绝对定位的 H4 作为标签 但是 当鼠标指针移
  • $.fn.function 的调用函数

    问题如下 有一个函数自定义 jquery 函数 里面有另一个函数 例如 fn slides function args function foo args 我现在的问题是 我如何调用方法 foo foo不是一种方法 这是一个本地函数 除非您
  • 字符串等于和 == 与字符串连接[重复]

    这个问题在这里已经有答案了 我试图理解字符串连接与字符串比较的输出 需要明确的是 我有一个类使用 和 equals 来比较两个字符串 我试图将 和 equals 的输出连接到一个字符串 equals 的输出是 concats 但是 的输出是
  • Android Fragment onCreateView 与 onActivityCreated

    我知道片段的视图层次结构必须在 onCreateView 中膨胀 但是 onCreateView 中还可以包含哪些其他功能 而不是应该等待 onActivityCreated 我当前的实现对所有内容都使用单独的活动 典型的活动在其 onCr
  • PHP 路由 - 样式表无效

    我用 PHP 创建了一个基本的路由系统 url 被分割成一个数组 这样我就可以根据 URL 决定显示什么 例如 www domain com page option param 因此 在我的index php 中 我为页眉 内容和页脚定义了
  • 如何在触摸时旋转图像并将图像拖动到另一个图像上

    我正在开发一个应用程序 我需要一个包含许多图像的图库 我想要做的是 当用户点击 单击任何图像时 它应该将该图像旋转到 90 度 如果用户将任何图像拖动到任何其他图像的顶部 那么这些图像应该交换它们的位置 或者我们可以说交换 彼此的位置 解释
  • UITableView:使用 moveRowAtIndexPath:toIndexPath: 和 reloadRowsAtIndexPaths:withRowAnimation: 一起出现损坏

    我想使用 iOS 5 漂亮的行移动调用来为表格视图设置动画以匹配某些模型状态更改 而不是旧式的删除和插入 更改可能包括重新排序和就地更新 并且我想对两者进行动画处理 因此某些行需要reloadRowsAtIndexPaths But UIT
  • 在 Python/Pandas 中执行不同操作的许多列上有条件地聚合分组数据

    考虑以下简化的示例数据帧df Department CustomerID Date Price MenswearDemand HomeDemand 0 Menswear 418089 2019 04 18 199 199 0 1 Mensw
  • React 测试库:测试属性/prop

    我正在使用 TypeScript 编写一个 React 应用程序 我使用material ui作为我的组件 使用react testing library作为我的单元测试 我正在为 Material ui 的 Grid 组件编写一个包装器
  • PhantomJs超时

    我使用 Jasmine 和 PhantomJS 来运行测试用例 在我的典型测试用例中 我拨打服务电话 等待响应并确认响应 有些请求可能会在几秒钟内返回 有些请求可能需要一分钟才能返回 当通过 PhantomJS 运行时 测试用例因服务调用而
  • 从 MS Graph API 获取联系人时找不到资源

    我尝试了下面的 github 示例进行 Azure AD 身份验证 并成功通过正确的回调 URL 获取访问令牌 https github com Microsoft BotBuilder Samples tree master sample
  • xpath查询到xpath查询结果

    例如我们有这个 xml a b b a
  • airflow webserver 命令失败并显示 {filesystemcache.py:224} 错误 - 不允许操作

    我正在 Cent OS 7 上安装 Airflow 我已经配置了 Airflow db init 并检查了 nginx 服务器的状态及其工作正常 但是当我运行airflow webserver命令时 我收到下面提到的错误 2021 03 2
  • WCF 服务限制

    我在控制台应用程序中部署了一个 WCF 服务 并启用了 BasicHTTPBinding 和 SSL 还设置了以下属性 AspNetCompatibilityRequirements RequirementsMode AspNetCompa
  • Chrome 扩展程序端口错误:无法建立连接。接收端不存在

    当我尝试从弹出窗口向我的内容脚本发送消息时 出现此错误 我想做的是从 content js 获取当前选项卡的文档并将其发送到弹出窗口 我该如何修复这个错误 manifest version 2 name Chrome Snapshot de