热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Firefoxwebextension错误:无法建立连接.接收端不存在

如何解决《Firefoxwebextension错误:无法建立连接.接收端不存在》经验,为你挑选了1个好方法。

我正在尝试将后台脚本中的变量发送到与HTML页面关联的内容脚本.内容脚本使用从后台脚本接收的变量更新HTML内容.

问题是我收到此错误消息:

Error: Could not establish connection. Receiving end does not exist.

后台脚本main.js:

var target = "";
function logError(responseDetails) {
  errorTab = responseDetails.tabId;
  console.log("Error tab: "+errorTab);

  errorURL = responseDetails.url;
  console.log("Error URL: "+errorURL);

  //send errorURL variable to content script
  var sending = browser.tabs.sendMessage(errorTab, {url: errorURL})
    .then(respOnse=> {
      console.log("Message from the content script:");
      console.log(response.response);
    }).catch(onError);

  //direct to HTML page
  browser.tabs.update(errorTab,{url: "data/error.html"});
}//end function

browser.webRequest.onErrorOccurred.addListener(
  logError,
  {urls: [target],
  types: ["main_frame"]}
);

error.html方法是:



  


  The error received is 
  


content-script.js:

//listen to errorURL from the background script.
browser.runtime.onMessage.addListener(request => {
  console.log("Message from the background script:");
  console.log(request.url);
  return Promise.resolve({response: "url received"});
}); //end onMessage.addListener

//update the HTML  tag with the error
document.getElementById("error-id").innerHTML = request.url;

manifest.json:

{
  "manifest_version": 2,
  "name": "test",
  "version": "1.0",
  "background": {
    "scripts": ["main.js"]
  },

  "content_scripts": [
    {
      "matches": [""],
      "js": ["webextension/data/content-script.js"]
    }
  ],

  "permissions": [
    "",
    "activeTab",
    "tabs",
    "storage",
    "webRequest"
  ]
}

Makyen.. 10

你得到错误:

Error: Could not establish connection. Receiving end does not exist.

当您试图通信(例如tabs.sendMessage(),tabs.connect()),以在内容脚本没有侦听消息的标签.这包括选项卡中不存在内容脚本的时间.

您无法将内容脚本注入about:*URL

对于您的问题,您收到此错误,因为没有在选项卡中注入内容脚本.当您尝试发送消息时,在某个main_frame webRequest.onErrorOccurred事件中,该选项卡的URL已经存在about:neterror?[much more, including the URL where the error occurred].您无法将内容脚本注入about:*URL.因此,选项卡中没有内容脚本可以监听您的消息.

具体来说,您已在manifest.json条目中使用了匹配模式.火柴: content_scripts

特殊值""匹配任何支持的方案下的所有URL:即"http","https","file","ftp","app".

它与URL 匹配about:*.

有关Firefox在a webRequest.onErrorOccurred中获取事件时使用的URL的更多讨论main_frame,请参阅" 注入导航错误页面获取:错误:没有窗口匹配{"matchesHost":[""]} "



1> Makyen..:

你得到错误:

Error: Could not establish connection. Receiving end does not exist.

当您试图通信(例如tabs.sendMessage(),tabs.connect()),以在内容脚本没有侦听消息的标签.这包括选项卡中不存在内容脚本的时间.

您无法将内容脚本注入about:*URL

对于您的问题,您收到此错误,因为没有在选项卡中注入内容脚本.当您尝试发送消息时,在某个main_frame webRequest.onErrorOccurred事件中,该选项卡的URL已经存在about:neterror?[much more, including the URL where the error occurred].您无法将内容脚本注入about:*URL.因此,选项卡中没有内容脚本可以监听您的消息.

具体来说,您已在manifest.json条目中使用了匹配模式.火柴: content_scripts

特殊值""匹配任何支持的方案下的所有URL:即"http","https","file","ftp","app".

它与URL 匹配about:*.

有关Firefox在a webRequest.onErrorOccurred中获取事件时使用的URL的更多讨论main_frame,请参阅" 注入导航错误页面获取:错误:没有窗口匹配{"matchesHost":[""]} "


推荐阅读
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 在编写业务代码时,常常会遇到复杂的业务逻辑导致代码冗长混乱的情况。为了解决这个问题,可以利用中间件模式来简化代码逻辑。中间件模式可以帮助我们更好地设计架构和代码,提高代码质量。本文介绍了中间件模式的基本概念和用法。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
author-avatar
MISSLOVE0710
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有