Ich entwickle eine Chrome-Erweiterung, die versucht, alle ausgewählten Texte auf einer Seite zu sammeln. Ich habe ein Inhaltsskript verwendet, um den ausgewählten Text abzufangen und ihn an popup.js zu übergeben, ihn an ein Array anzuhängen und ihn dann in popup.html anzuzeigen, so dass jedes Mal, wenn die Benutzer auf das Popup klicken, angezeigt wird, was sie ausgewählt haben.Werden Variablenwerte in popup.js in Chrome-Erweiterungen aktualisiert?
Immer wenn ich etwas auswähle, zeigt popup.html es an, aber alle Texte, die ich vorher ausgewählt habe, sind alle weg. Und das Array behält immer die Länge von 1. Was mich denken lässt, wenn die Popup-Seite jedes Mal aktualisiert wird, wenn Sie darauf klicken.
Ich konnte es nicht herausfinden, also würden Sie mir helfen? Was ich wissen möchte ist: Wenn das Popup bei jedem Klick aktualisiert wird, wie soll ich die Variablen speichern? wenn nicht, wenn was ist mein Problem.
Mein popup.js Code ist als unten:
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;
}
vielen Dank im Voraus!
Ich glaube, Sie könnten auch [localstorage] (https://developer.mozilla.org/en/docs/Web/API/Window/localStorage) auch dafür verwenden, es wäre einfacher als 'chrome.storage' –
Hey vielen Dank @ Transcendental @NoamHacker so viel für die Antworten. Ich schätze es. –
Eine Frage dazu: Wenn ich "chrome.storage" zum Speichern von Variablen verwenden möchte, kann ich die Variablen aus jeder Skriptdatei mit der Erweiterung (z. B. popup.js, background.js, contentScript.js) setzen und abrufen? Egal, welche Variable von welchem Skript definiert wird, sobald sie sich in "chrome.storage" befindet, ist sie für jedes Dateirecht verfügbar. –