Das Script "QuickLinkButton-about-config.uc.js" funktioniert nicht mehr.

  • Schade, ich fand, es war eine sehr kompakte und kurze Schreibweise.
    Es sah so aus:

    NICHT VERWEDEN!

    Halt dann eben mit dieser Schleife, und ich habe so auf die schnelle auch keine Lösung gefunden.
    Wenn es nur eine oder zwei zusätzliche Codezeilen wären, würde ich es mir mal merken wollen.

    Mit <3lichem Gruß

    Mira

  • Durch das ?. wird nur das addEventListener nicht ausgeführt, wenn document.getElementById(id) kein Element findet, statt dass das Script mit einem Fehler abbricht. Im Erfolgsfall wird sowieso die nächste Zeile ausgeführt. Deswegen findet der folgende Aufruf von setTimeout(add_button, 100) in dem Code immer statt. Und da du damit die Funktion aufrufst, in der du dich befindest, geht es immer im Kreis, weil an der Stelle ja nicht mehr geprüft wird, ob das überhaupt notwendig ist. Wäre die Funktion stattdessen fertig und würde sich nicht selbst aufrufen wollen, dann wäre das ein Fall für die kurze Schreibweise, weil du dir dann sinnvollerweise das if sparen kannst. Aber so ist das einfach nicht der Anwendungsfall dafür.

  • Nur weiß ich nicht, wie ich dann mit der "Farbe" machen soll.

    Du kannst das doch einfach in den onCreated: (button) => {... Block mit reinschreiben; der Style wird immer angewandt, und fill wird eh nur für (geignete) svg Icons benutzt; das iconNode Dingens versteh ich gar nicht. :/

    Also sowas:

    Code
        onCreated: (button) => {
            button.style.MozContextProperties = 'fill, stroke, fill-opacity';
            button.style.listStyleImage = 'url("chrome://global/skin/icons/heart.svg")';
            button.style.minWidth = 'fit-content';   
            button.style.fill = 'red';           
        }

    Dann sollte der Button rot sein.

  • Du kannst das doch einfach ....

    Darauf war ich dann auch gekommen. ;)
    Es gibt, oder gab da einzelne Fälle, wo das eben nicht klappte,
    deshalb war das ja auch nach unten nach dem if (button) { gewandert.
    Habe es aber mal Kommentiert, damit ich Spatzenhirn es nicht wieder vergesse.

    Durch das ?. wird nur das addEventListener nicht ausgeführt, wenn document.getElementById(id) kein Element findet, statt ...

    Ah, jetzt verstehe ich! Da ist also meine Schleife!
    Bei dem anderen Code wird das addEventListener nicht ausgeführt, wenn document.getElementById(id) kein Element findet,
    dann wird setTimeout(add_button, 100) durchlaufen und wenn dann document.getElementById(id) vorhanden ist,
    wird addEventListener ausgeführt und das Script beendet.

    Mit <3lichem Gruß

    Mira

  • Du kannst das doch einfach ....

    Darauf war ich dann auch gekommen. ;)
    Es gibt, oder gab da einzelne Fälle, wo das eben nicht klappte,

    Vermutlich weil JS Style Kram sehr leicht von CSS überschrieben werden kann; noch ein Grund kritische Styles eher mit CSS festzulegen. ;)