Firefox webextension错误:无法建立连接。接收端不存在
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"
]
}