Firefox webextension错误:无法建立连接。接收端不存在

10 浏览
0 Comments

Firefox webextension错误:无法建立连接。接收端不存在

我正在尝试将一个变量从后台脚本发送到与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);
  //将 errorURL 变量发送到内容脚本
  var sending = browser.tabs.sendMessage(errorTab, {url: errorURL})
    .then(response => {
      console.log("来自内容脚本的消息:");
      console.log(response.response);
    }).catch(onError);
  //跳转到 HTML 页面
  browser.tabs.update(errorTab,{url: "data/error.html"});
}//结束函数
browser.webRequest.onErrorOccurred.addListener(
  logError,
  {urls: [target],
  types: ["main_frame"]}
);

error.html 文件内容如下:



  


  收到的错误是 
  


content-script.js 文件内容如下:

//监听来自后台脚本的 errorURL。
browser.runtime.onMessage.addListener(request => {
  console.log("来自后台脚本的消息:");
  console.log(request.url);
  return Promise.resolve({response: "已收到 URL"});
}); //结束 onMessage.addListener
//使用错误更新 HTML 的  标签
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"

]

}

0