Javascript 如果弹出窗口关闭,如何在background.js和popup.js之间发送数据?
我需要将数据从popup.js发送到background.js,然后再从background.js发送到popup.js。但如果popup.html关闭,它将无法从background.js接收数据,因为端口不存在。如何解决 我的代码: popup.jsJavascript 如果弹出窗口关闭,如何在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
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.js或background.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扩展的一部分。它以另一种方式工作