Javascript 如果弹出窗口关闭,如何在background.js和popup.js之间发送数据?

Javascript 如果弹出窗口关闭,如何在background.js和popup.js之间发送数据?,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我需要将数据从popup.js发送到background.js,然后再从background.js发送到popup.js。但如果popup.html关闭,它将无法从background.js接收数据,因为端口不存在。如何解决 我的代码: popup.js var port = chrome.runtime.connect({ name: 'Communication with background.js', }); port.postMessage("Hi BackGround"); po

我需要将数据从popup.js发送到background.js,然后再从background.js发送到popup.js。但如果popup.html关闭,它将无法从background.js接收数据,因为端口不存在。如何解决

我的代码:

popup.js

var port = chrome.runtime.connect({ 
name: 'Communication with background.js', 
});

port.postMessage("Hi BackGround");
port.onMessage.addListener(function(msg) {
console.log("message recieved" + msg);
});
background.js

chrome.runtime.onConnect.addListener(function(port) {
console.log("Connected .....");
port.onMessage.addListener(function(msg) {
console.log("message recieved " + msg);
port.postMessage("Hi Popup.js");
});
});

弹出窗口消失后,不仅端口关闭,而且popup.js脚本不再运行。您可以将内容存储在background.js脚本(persistent)中,并在每次加载弹出窗口时发送相关信息(您已经有了部分内置信息),也可以将信息存储在本地存储器中,并在每次加载弹出窗口时加载

popup.jsbackground.js

chrome.storage.sync.set({'dataValue1': 'Some data 1.'});
chrome.storage.sync.set({'dataValue2': 'Some data 2.'});
function updatePopup(){
  chrome.storage.sync.get(['dataValue1','dataValue2'], function(data) {
    //Update popupElement1 and popupElement2 with loaded data
    document.getElementById("popupElement1").value = data.dataValue1;
    document.getElementById("popupElement2").value = data.dataValue2;

  });
}

document.addEventListener('DOMContentLoaded', updatePopup);
popup.js

chrome.storage.sync.set({'dataValue1': 'Some data 1.'});
chrome.storage.sync.set({'dataValue2': 'Some data 2.'});
function updatePopup(){
  chrome.storage.sync.get(['dataValue1','dataValue2'], function(data) {
    //Update popupElement1 and popupElement2 with loaded data
    document.getElementById("popupElement1").value = data.dataValue1;
    document.getElementById("popupElement2").value = data.dataValue2;

  });
}

document.addEventListener('DOMContentLoaded', updatePopup);

在页面加载时创建弹出窗口,但在需要时将其隐藏it@PaulaLivingstonepopup.html是chrome扩展的一部分。它以另一种方式工作