Skript für Add-ons Update

  • Wenn ich richtig liege, ist der Fehler in folgendem Teil des Codes.

    JavaScript
    categories.addEventListener('mousedown', function onMousedown(event) {
                  if (event.target != item && event.target.parentNode != item) {
                    item.hidden = true;
                    categories.removeEventListener('mousedown', onMousedown);
                  };
                });

    Mit <3lichem Gruß

    Mira

  • Ach so!

    Und verstehe ich diese Aussage richtig, wenn ich sage, es ist zu viel für die Laufzeitumgebung?

    Zitat

    InternalError

    Der Typ InternalError wird verwendet, wenn eine Ausnahme in der JavaScript-Laufzeit-Engine auftritt. Das kann auf ein Problem in deinem Code hindeuten, muss es aber nicht.

    In den meisten Fällen tritt InternalError nur in zwei Szenarien auf:

    • Wenn ein Patch oder ein Update für die JavaScript-Laufzeitumgebung einen Fehler enthält, der Ausnahmen auslöst (dies kommt sehr selten vor)
    • Wenn dein Code Elemente enthält, die für die JavaScript-Engine zu groß sind (z. B. zu viele Switch-Cases, zu große Array-Initialisierungen, zu viele Rekursionen)

    Der beste Ansatz zur Lösung dieses Fehlers besteht darin, die Ursache anhand der Fehlermeldung zu identifizieren und deine App-Logik nach Möglichkeit umzustrukturieren, um die plötzliche Belastungsspitze der JavaScript-Engine zu beseitigen.

    Quelle: https://kinsta.com/de/blog/fehler…/#internalerror

    Update.

    Wenn ich zweimal hintereinander das Script ausführe, also zweimal den Button betätige,

    wird das Script beim zweiten Aufruf richtig ausgeführt!

    Mit <3lichem Gruß

    Mira

    Einmal editiert, zuletzt von Mira_Belle (17. November 2022 um 10:48)

    • Hilfreichste Antwort

    Testet mal bitte. Falls es funktioniert, dauert es zwei Sekunden, bis die Updates angezeigt werden.

  • ;(

    Wieder so eine Zeitschleife.

    Leider funktioniert das Script so nicht bei mir.

    Habe beide Werte auf 5000 hochgestellt und auch da funktioniert es nicht.

    Und auch bei dem neuen Script ist es so, dass beim zweiten Mal ausführen es richtig funktioniert.

    Und wenn der Fehler durch

    let frameScriptURI = 'data:,(' + frameScript.toString() + ')()';

    und/oder

    window.gBrowser.selectedBrowser.messageManager.loadFrameScript(frameScriptURI, true);

    verursacht wird, müsste man dann nicht da ansetzen? :/

    Leider verstehe ich von JavaScript so gar nichts.

    Mit <3lichem Gruß

    Mira

  • Nachtrag!

    Das Script funktioniert ohne jegliches content.setTimeout(function() {

    richtig, wenn man oben z.B. den Reloadbutton tätigt!

    Also, wenn die "Seite" ein zweites Mal geladen wird!

    Eventuell gibt es ja eine Funktion für Reload?

    Wäre dann zwar unelegant, aber Hauptsache es funktioniert und das Ergebnis stimmt.

    Mit <3lichem Gruß

    Mira

  • Das Script funktioniert ohne jegliches content.setTimeout(function() {

    richtig, wenn man oben z.B. den Reloadbutton tätigt!

    Nein, das tut es so auch nicht verlässlich! Denn genau das war auch der Ansatz, den ich für meinen erfolglosen Fehlerbehebungsversuch in Beitrag #14 verwendet habe.

    Ich habe die alte Version über die entsprechende Forenfunktion mal wieder hergestellt:

    BrokenHeart
    15. November 2022 um 02:21
  • :/

    Ich nutzte für die Versuche:

    Drücke den "Button", und die Seite "about:addons" wird geladen,

    nach einem kurzen Augenblick erscheint dann die Schaltfläche Verfügbare Updates anzeigen

    und auch Rechts die Schaltfläche Verfügbare Updates.

    Beide Schaltflächen scheinen ohne Funktion :!:

    Drücke ich jetzt in der "Navbar" den Reloadbutton, wird nach der Funktion nun

    unter Verfügbare Updates auch das Add-on gezeigt für welches ein Update vorhanden ist.

    Ganz ohne Script funktionieren beide Schaltflächen.

    Mit <3lichem Gruß

    Mira

    2 Mal editiert, zuletzt von Mira_Belle (17. November 2022 um 23:43)

  • So wird Neuladen ins Skript eingebaut, vorsichtshalber wieder mit Verzögerung:

    Vor dieser Zeile:

    JavaScript
                categories.addEventListener('mousedown', function onMousedown(event) {

    einfügen:

    JavaScript
                content.setTimeout(function() {
                  content.location.reload();
                }, 1000);
  • :love:

    So, ...

    ... funktioniert das Script bei mir.

    Bitte um feedback.

    Nachtrag :!:

    ;(

    Habe ca. 15 bis 20 Mal den Fuchs neu gestartet und das Script (den Button) ausprobiert.

    Leider funktionierte es einmal nicht.

    Eventuell doch noch der Wurm drinn.

    2. Nachtrag!

    Leider funktioniert das Script nicht zuverlässig. ;(

    Eben getestet und von zwei Updates wurde nur eins angezeigt.

    Test wiederholt, wieder nur ein Update angezeigt.

    Erst beim 3. Test funktionierte es wie gewünscht.

    Mit <3lichem Gruß

    Mira

    4 Mal editiert, zuletzt von Mira_Belle (18. November 2022 um 17:12)