Div. Skripte funktionieren im aktuellem Nightly nicht mehr

  • FuchsFan

    Das Script funktioniert hier auch in Firefox 136 Nightly von heute Nachmittag einwandfrei.
    Neustart kann ja nicht gehen, daher hier auch wieder deaktiviert.
    Es wird alles angezeigt und bei Klick auch geöffnet.

    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0
    OS: Windows 10 pro 64 bit und Windows 10 Home 64 bit
    Meine Scripte Sammlung: https://github.com/Endor8/userChrome.js
    Kein Support per PN. Fragen bitte im Forum stellen!

  • Was den Neustart betrifft, setzt der noch das Script: addRestartButton.uc.js voraus.

    Danke für diese wichtige Info. Dann wird es natürlich klar, warum es nicht geht.

    Nur noch mal als Bestätigung, es funktioniert in allen Versionen, nur nicht im neuen Nightly.

    Jetzt weiß ich immer noch nicht genau, ob die angesprochenen Punkte bei dir mit der neuen Version funktionieren oder nicht (Browserwerkzeuge)? :/

    Gruß BrokenHeart

    "success has many fathers, failure is an orphan"

  • Alles klar. Nicht hetzen lassen...

    BrokenHeart

    Konnte nicht mehr warten;), deshalb hier das Ergebnis.

    Wenn ich hoffentlich alles richtig übertragen habe, dann öffnen die Einstellungen, die Browser-Werkzeuge, und es gibt einen Neustart. Neustart aber nur, wenn ich dafür den bisherigen Eintrag einsetze.

    Code
    if(this.enableRestart) menupopup.appendChild(this.createME("menuitem","Neustart",
        "Services.appinfo.invalidateCachesOnRestart(); Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit,0);"));

    Damit wird dann auch aus dem Restart-Script alles übernommen.

    Morgen werde ich alles sauber einrichten, dann werden wir weiter sehen.

    Danke, Du hast wieder gute Arbeit gemacht. :thumbup::thumbup::)

    Grüße vom FuchsFan

  • Jepp, habe mal durchgeschaut und bin mir nur bei einem unsicher.

    Gebe es mal hier zum besten:

    Code
    // Kontextmenu bei Mira_Belle
    
    /// Symbole.uc.js
    /* ****************************************************************************************** */
    
    ...
    })();

    Das Skript sollte uneingeschränkt funktionieren!
    Meines tut es jedenfalls.


    Zischenbilanz!

    CloseTab.uc.js, SkipToTopAndBottom.uc.js & newTabButtonUndoTabList.uc.js funktionieren.
    Wobei newTabButtonUndoTabList.uc.js schon irgendwie merkwürdig reagiert.
    Darauf werde ich ein später in einem eigenen Thread irgendwann noch einmal genauer eingehen.

    Ob UndoListInTabmenuToo.us.js funktioniert, habe ich noch nicht geprüft!
    Aber bei einigen Nutzern scheint es ja so zu sein.

    Nun sind bei mir nur noch 4 Skripte offen. (Die "Translate"-Skripte sind ja nahezu gleich)
    Und ich bekomme es alleine nicht hin!

    Das wäre das erste Skript (Restart item script for Firefox 89+ by Aris),
    das Zweite (Tab schließen + Kontextmenü auch in dem Einstellungsfenster),
    die beiden "Translate"-Skripte,
    und das mir wichtigste, Appmenu_neu2.uc.js.

    Link => #133

    Zeilen 226, 278, 321 & 325 sind m.M. anzupassen. Aber wie?

    Mit <3lichem Gruß

    Mira

    4 Mal editiert, zuletzt von Mira_Belle (13. Januar 2025 um 01:24)

  • das Zweite (Tab schließen + Kontextmenü auch in dem Einstellungsfenster),

    Haben wir schon:

  • Kleiner Nachtrag zu newTabButtonUndoTabList.uc.js.

    Habe das Verhalten noch einmal überhüpft und festgestellt,
    dass es sich ganz normal, also genau wie das Alte verhält.

    Dennoch hätte ich Fragen zu dem Skript!
    1. Warum muss mp.setAttribute("onpopupshowing", "UCT.onpopupshowing(event);"); behandelt werden,
    als wäre es doch ein "EventListener"? (Das Skript funktioniert sonnt nicht!

    JavaScript
        //    mp.setAttribute("onpopupshowing", "UCT.onpopupshowing(event);");
            mp.addEventListener('popupshowing', function(event) {
                UCT.onpopupshowing(event);
            }, true);

    2. Weiter "unten" kommt diese Zeile im Code vor:
    m.setAttribute('oncommand', 'undoCloseTab(' + id + ')');

    Daraus wurde Folgendes gemacht:

    JavaScript
    undoItems.map(function (item, id) {
    
            //    m.setAttribute('oncommand', 'undoCloseTab(' + id + ')');
    			let strCommand = 'undoCloseTab(' + id + ')';
    			m.addEventListener('command', () => {
    				Function("return " + strCommand)();
    			}, true);

    Nur habe ich vorher schon etwas mit dem Skript auseinandergesetzt und bin auf eine andere Lösung gekommen.

    JavaScript
    undoItems.map(function (item, index) { // Verwende `index` statt `id`
    
            //    m.setAttribute('oncommand', 'undoCloseTab(' + id + ')');            
                m.addEventListener('command', (event) => {
                    if (event.button == 0) {
                        undoCloseTab(index); // `index` statt ' + id + ' verwenden
                    }

    Worin bestehen die Vor, bzw. Nachteile der jeweiligen Versionen?


    /* ********************************************************************************************************************************************************************* */

    das Zweite (Tab schließen + Kontextmenü auch in dem Einstellungsfenster),

    Haben wir schon:

    [/post]

    =O Oh, da habe ich wohl den Überblick verloren!
    Richtig, dieses Skript habe ich schon in korrigierter Fassung.

    Ergo sind es nur 3 Skripte, die mir Kopfzerbrechen bereiten:!:

    Mit <3lichem Gruß

    Mira

    Einmal editiert, zuletzt von Mira_Belle (13. Januar 2025 um 09:56)

  • Warum muss mp.setAttribute("onpopupshowing", "UCT.onpopupshowing(event);"); behandelt werden,
    als wäre es doch ein "EventListener"? (Das Skript funktioniert sonnt nicht!

    Gegenfrage: Wieso sollte hier etwas anderes gelten?

    Worin bestehen die Vor, bzw. Nachteile der jeweiligen Versionen?

    Ob du die Variable id oder index nennst, macht keinen Unterschied (um Bezug auf deine Code-Kommentare zu nehmen). Du kannst die nennen, wie du möchtest. Ansonsten, unter der Voraussetzung, dass beides gleich funktioniert (ich habe es nicht getestet), ist der Vorteil deiner Version, dass sie weniger umständlich ist. Es liest sich besser, außerdem wird die Funktion wirklich als Funktion und nicht als String geschrieben (was schon ein Nachteil der Inline-Variante war), womit Syntax-Hervorhebung und Navigation im Code-Editor möglich sind. Und das hilft letztlich dabei, den Code zu verstehen und zu pflegen. Die Bedingung event.button == 0 ist im Übrigen bereits zusätzlicher Code, das gibt es im anderen Code nicht. Lässt du das weg, wird der Unterschied noch deutlicher.

  • Hallo FuchsFan

    Code
    if(this.enableRestart) menupopup.appendChild(this.createME("menuitem","Neustart",
        "Services.appinfo.invalidateCachesOnRestart(); Services.startup.quit(Ci.nsIAppStartup.eRestart | Ci.nsIAppStartup.eAttemptQuit,0);"));

    Vielen Dank für den Schnipsel. :thumbup::thumbup:
    Habe ich gleich mal eingefügt bzw. ersetzt.

    Mfg.
    Endor

    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0
    OS: Windows 10 pro 64 bit und Windows 10 Home 64 bit
    Meine Scripte Sammlung: https://github.com/Endor8/userChrome.js
    Kein Support per PN. Fragen bitte im Forum stellen!

    Einmal editiert, zuletzt von Endor (13. Januar 2025 um 10:56)

  • //

    Ich nutze zwar das neue Skript von Mitleser :thumbup:, habe aber mal an diesem Skript versucht es anzupassen...bin aber kläglich gescheitert:(

    Es würde mich freuen, wenn sich das mal jemand ansehen/anpassen könnte, evtl. lerne ich dadurch ja doch etwas.

  • Worin bestehen die Vor, bzw. Nachteile der jeweiligen Versionen?

    Ergänzend zu dem was Sören Hentzschel geschrieben hat:

    Die 1.Version mit Function erzeugt aus dem String eine anonyme Funktion die dann zur Laufzeit (und damit auch im Debugger) aufgerufen wird. Das ist besonders bei generischen Funktionen hilfreich, die zur Laufzeit unterschiedliche command-events bekommen, wie wir es z.B. beim extraConfigMenu-Skript der Fall ist. Macht man es so, wie in der zweiten Version, dann müsste man eine Vielzahl von neuen Funktionsaufrufen schreiben oder Funktionen als Parameter übergeben. Im Normalfall
    ist es meiner Erachtens gleich, was für eine Version verwendet wird. Da es eigentlich immer nur einen(!) Funktionsaufruf für einen command-event geben sollte. In dieser Funktion wird dann das Ereignis behandelt. In vielen unserer genutzten Skripte steht aber oft schon der halbe Code in dem 'oncommand'-Attribute, was mehr als schlecht zu lesen und verstehen ist.

    Gruß BrokenHeart

    "success has many fathers, failure is an orphan"

  • Vielen Dank für den Schnipsel.

    Gerne doch, Endor , aber ich bin nur der Nutzer, nicht der Autor. ;)


    BrokenHeart

    Da gab es doch noch ein Problemchen, die Scripte wurden im Submenü zwar angezeigt, konnten aber nicht geöffnet werden.:rolleyes:

    Nochmals alles verglichen und übertragen, es wird alles angezeigt und funktioniert auch. Einstellungen nutze ich so zwar nicht, weil ich es unter Funktionen extra zur Verfügung habe.

    Danke!:thumbup::) Wieder eine Hürde genommen.:)

    Grüße vom FuchsFan

    Einmal editiert, zuletzt von FuchsFan (13. Januar 2025 um 11:36) aus folgendem Grund: Ein Beitrag von FuchsFan mit diesem Beitrag zusammengefügt.

  • Es würde mich freuen, wenn sich das mal jemand ansehen/anpassen könnte, evtl. lerne ich dadurch ja doch etwas.

    Man sollte "nur von den Besten lernen" ... also nicht von mir ;). Aber hier mal das Skript. Hoffe es läuft.
    Setzt das wirklich nur den mediasource-Eintrag in about:config? Keine Ahnung wozu das gut ist...:/


    Danke! :thumbup: :) Wieder eine Hürde genommen. :)

    Gerne. Freut mich, wenn es jetzt läuft... :thumbup:

    Gruß BrokenHeart

    "success has many fathers, failure is an orphan"

    Einmal editiert, zuletzt von BrokenHeart (13. Januar 2025 um 11:43) aus folgendem Grund: Ein Beitrag von BrokenHeart mit diesem Beitrag zusammengefügt.

  • also nicht von mir

    Wenn ich nur 10% deiner Kenntnisse bezüglich Skripte hätte...tcha dann...

    Hoffe es läuft.

    Perfekt, herzlichen Dank dafür.:thumbup:

    nur den mediasource-Eintrag in about:config?

    Ja.

    Keine Ahnung wozu das gut ist.

    Ich nehme sehr viel in den Mediatheken auf, bzw. direkt von den Sendern. Beim ZDF wird mir das Video dann so angezeigt:

    Ich brauche es aber .mp4 für meinen TV. Dann muss ich den config Eintrag umschalten, dann wird es eine .mp4 Datei:

  • Sören Hentzschel D.h. ich könnte den Code auch so verwenden?

    JavaScript
    undoItems.map(function (item, index) { // Verwende `index` statt `id`
    
            //    m.setAttribute('oncommand', 'undoCloseTab(' + id + ')');            
                m.addEventListener('command', (event) => {
                    undoCloseTab(index); // `index` statt ' + id + ' verwenden
                    }

    Und die Variable auch "Sören" nennen? :D

    BrokenHeart Um welches Skript geht es eigentlich genau, bei der Konversation mit FuchsFan ?
    Denn vom "Bildchen" her, könnte, wenn der Code funktioniert, eventuell etwas für mein Appmenu_neu2.uc.js abfallen.

    Mit <3lichem Gruß

    Mira

  • Ich brauche es aber .mp4 für meinen TV. Dann muss ich den config Eintrag umschalten, dann wird es eine .mp4 Datei:

    In dem Fall klappt das also eher zufällig. ;) Die Unterstützung für WebM könntest du auch über media.webm.enabled steuern. Der Schalter media.mediasource.enabled steuert die Unterstützung sogenannter Media Source Extensions. Dass sich das ausgelieferte Format dadurch ändert, ist eine Entscheidung, die diese Mediathek getroffen hat. Technisch gesehen gibt es da keinen Zusammenhang. Das heißt, es könnte theoretisch irgendwann passieren, dass du doch wieder WebM-Videos bekommst.

    D.h. ich könnte den Code auch so verwenden?

    Wenn es funktional identisch zur anderen Version sein soll, ja. Wenn diese Abfrage einen Grund hat, kannst du sie natürlich auch belassen.

    Und die Variable auch "Sören" nennen? :D

    Umlaute (oder allgemeiner: Nicht-ASCII-Zeichen) sollten vermieden werden. Aber grundsätzlich möglich, ja. ;)