0

Für Firefox habe ich eine Seite, die in einem neuen Tab lädt nach dem Klicken auf einen Browser-Symbol-Taste. Das Hintergrundskript für die Seite läuft beim ersten Mal einwandfrei, jedoch nicht beim erneuten Laden der Seite, beim erneuten Klicken auf die Schaltfläche mit bereits geöffneter Registerkarte oder nach dem Schließen der Registerkarte und dem Öffnen einer anderen. Ich muss das Skript erneut speichern, um die Erweiterung zu entladen/neu zu laden, damit sie korrekt ausgeführt wird. Gibt es etwas im Manifest, das ich hinzufügen muss? Erweiterung Hintergrund Skript wird nicht geladen, es sei denn, erneut gespeichert

manifest.json

Update: ich mein Problem mit dem Code unten isoliert haben. Beim Aktualisieren der Seite oder erneutem Klicken auf die Aktionsschaltfläche des Browsers wird die Ausführung aufgerufen und überspringt die Funktion xhr.onreadystate = function() und kommt daher nie zu Main(). Für alles, was angefordert/erhalten wurde, ändert sich die xhr.onreadystate nicht.

Update 2: Die Ausführung macht einen Durchgang zum Main() von drei. Alle Variablen behalten ihre Werte vom ersten Durchlauf und scheinen Dinge zu vermasseln. Wie lösche ich sie, nachdem ich die Seite neu geladen oder auf das Browsersymbol geklickt habe?

function GetData(request) 
 
{ 
 
    var xhr = new XMLHttpRequest(); 
 
    
 
    xhr.onreadystatechange = function() 
 
    { 
 
    console.log(xhr.readyState + " : " + xhr.status) 
 
    if (xhr.readyState == 4 && xhr.status == 200) 
 
    { 
 
     re_data = JSON.parse(xhr.responseText); 
 
     Main(); 
 
    } 
 
    } 
 
    
 
    xhr.open("GET", request, true); 
 
    xhr.send(); 
 
}

+0

Nein, was im * manifest.json * enthalten ist, sollte nicht zu dem führen, was Sie beschreiben. Wir benötigen ein * complete * [mcve], um zu wissen, was vor sich geht (d. H. Einschließlich * background.js * und * modify_page.js * -Dateien oder mindestens genug von ihnen, um das Problem zu duplizieren. – Makyen

Antwort

0

dachte ich, das Problem und Lösung aus. Ich habe vergessen, sobald das Hintergrundskript geöffnet ist, bleibt es für die Lebensdauer der Erweiterung geöffnet. Daher werden die Variablen nicht zurückgesetzt. Alle Variablen, die zurückgesetzt werden müssen, müssen manuell zurückgesetzt werden. Beim erneuten Laden der Seite wird nur die Webseite neu geladen und nicht der Code, der als Reaktion auf eine Schaltfläche, eine Verknüpfung oder was auch immer manuell neu gestartet werden muss (an die entsprechende Funktion gesendet).

Verwandte Themen