我正在开发一个 Chrome 扩展程序,试图从一个页面收集所有选定的文本。我使用内容脚本来捕获所选文本并将其传递到 popup.js 并将其附加到数组,然后将其显示在 popup.html 中,以便用户每次单击弹出窗口时都可以看到他们选择的内容。
但是,每当我选择某些内容时,popup.html 都会显示它,但我之前选择的所有文本都消失了。而且数组的长度始终保持1。这让我想到如果每次点击弹出页面都会刷新。
我不明白,你能帮我吗?我想知道的是:如果每次点击弹出窗口都会刷新,我应该如何保存变量;如果没有,我的问题是什么时候。
我的popup.js代码如下:
var totalSelection = [];
var selectionDisplay = '';
if (chrome.extension.getBackgroundPage().newSelectedText !== undefined) {
text = chrome.extension.getBackgroundPage().newSelectedText;
addTextInArray(text);
addTextToPopup();
if (totalSelection.length > 1)
console.log("length: " + totalSelection.length.toString() + "\n" + totalSelection.toString());
}
function addTextInArray(message) {
totalSelection.push(message);
selectionDisplay += "<p>" + message + "</p>";
}
function addTextToPopup() {
document.getElementById("container2").innerHTML = selectionDisplay;
}
非常感谢!
最佳答案
每次重新打开弹出页面时,它们都会刷新。它们只是 html
文件。它们没有理由在后台保持打开状态(您有 background pages )。
您可以执行以下操作之一:
注意:从用户收集敏感数据时要小心。 Google 对此有严格的政策,如果您计划发布扩展程序,您最好向用户明确您正在收集数据。另外,请确保您符合 single purpose policy .
关于javascript - Chrome 扩展中的 popup.js 中的变量值是否会刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37970216/