userChrome.js Scripte für den Fuchs (Diskussion)

  • FuchsFan

    Dein Script haut bei mir gleich mehrere Fehler raus:

    Das Schaltflächensymbol wird auch nicht angezeigt.

    Mfg.
    Endor

    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0.1
    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!

  • Dein Script haut bei mir gleich mehrere Fehler raus:

    Die NS_ERROR_FILE_NOT_FOUND-Fehler kommen, wenn auf Ordner zugegriffen werden soll, die nicht existieren. Das sind in dem Script konkret die Ordner Scripte, CSS, CSSWeb und CSSAbout. Wenn die angelegt sind, gibt es diese Fehler auch nicht.

  • Nach Möglichkeit sollte immer === verwendet werden.

    Notwendig, weil JS über nur über die fehleranfällige 'dynamische Typisierung' verfügt, die Ursache vieler Fehler ist. Einerseits ist JS so verzeihend, dass alles irgendwie mit allem verglichen werden kann, andererseits werden dann wieder "strict"-Anweisungen bzw Operatoren wie "===" nachträglich (2015!) hinzugefügt, damit der Wildwuchs nicht zu groß wird. Daher resultiert auch die unterschiedliche Qualität der meisten Skripte. Die wenigen Vorgaben, die diese Sprache macht und die dynamischen Optimierungen verleiten dazu, dass jeder quasi seinen eigenen "privaten Code" in JS schreiben kann (ist in 'C' leider ähnlich). Daher gibt es auch kaum eine Sprache, die schwerer zu lesen ist als JS (mal von irgendwelchen experimentellen oder spaßhaften Sprachen abgesehen).

    Die Hinweise, die du zur "Codequalität" bringst sind zwar richtig, aber für mich irgendwie nur ein Pflaster für eine konzeptionell überholte Sprache.

    Lustig(?) "Wtfjs":

    wtfjs - a little code blog about that language we love despite giving us so much to hate

    Gruß BrokenHeart

    "success has many fathers, failure is an orphan"

  • aber für mich irgendwie nur ein Pflaster für eine konzeptionell überholte Sprache.

    Das sehe ich komplett anders. Vor allem finde ich, dass diese Aussage der Sprache in ihrer heutigen Form nicht gerecht wird. JavaScript hat sich in den letzten Jahren massiv weiterentwickelt und ist mittlerweile so mächtig, dass JavaScript längst auch als serverseitige Programmiersprache und sogar für komplexe Spiele verwendet werden kann. Auch vom Firefox-Code ist Stand heute mehr als ein Viertel JavaScript. Dem wäre nicht so, wäre JavaScript tatsächlich eine „überholte Sprache“.

    JavaScript hat historisch bedingte Design-Schwächen, aber derer muss man sich nur bewusst sein und die „guten“ Wege nutzen, Dinge umzusetzen. Das eigentliche Problem ist das gleiche wie mit HTML oder CSS und hat nichts mit der Sprache an sich zu tun: Es ist aus Kompatibilitätsgründen nicht möglich, grundsätzliche Schwächen zu korrigieren. Denn was einmal draußen in der Welt in Verwendung ist, muss auch in 20 Jahren noch funktionieren. Das ist das Konzept des Webs. So etwas wie eine „Deprecation“ für ein bestimmtes Konstrukt und in einem Jahr muss jeder seinen Code angepasst haben, ist (fast) nicht möglich. Selbst, wenn Dinge aus dem Standard entfernt werden, müssen sie trotzdem dauerhaft weiter unterstützt werden. Ausnahmen bestätigen die Regel, dann auch meist nur, wenn die Nutzung wirklich extrem gering ist. Aber niemand ist gezwungen, sein JavaScript heute auf dem Standard von vor 20 Jahren zu schreiben. Schon gar nicht in Scripts für Firefox, für die Kompatibilität mit anderen Browsern völlig egal ist und man wirklich Gebrauch von allen modernen Vorgehensweisen machen kann.

  • Das sehe ich komplett anders.

    [...]

    Dem wäre nicht so, wäre JavaScript tatsächlich eine „überholte Sprache“.

    Ich glaube gar nicht, dass du das so komplett anders siehst ;) . Ich hatte geschrieben "konzeptionell überholte Sprache". Die Kompatibilitätsproblematik hat man bei sehr vielen Sprachen bzw. überall da, wo stark verbreitete Software eingesetzt wird (z.B. windows). Das ist zwar unschön, aber auch kaum vermeidbar. Wenn in sehr "alten" Sprachen bestimmte Konzepte nicht verwirklicht wurden, wie in 'C' (ca. 1970) oder Fortran (1957), dann ist das natürlich verzeihlich, weil sie in einer Zeit mit anderen Anforderungen entwickelt wurden, wo diese Konzepte noch nicht, oder nur als theoretische oder experimentelle Ideen im akademischen Bereich existiert haben. Aber als JavaScript erschienen ist (1995), gab es diese Konzepte schon und zwar als nutzbare Programmiersprachen z.B. C++, Java etwa zeitgleich.

    Ich will JavaScript gar nicht schlecht machen. Die Sprache ist nun mal da, wird auch noch weiterentwickelt (was gut ist!) und ist extrem weit verbreitet. Das ist der status quo und daraus sollte man eben das Bestmögliche machen. Ich bin ja auch nicht der Meinung, dass deine Hinweise falsch sind, haben für mich persönlich nur eine andere Priorität.

    Gruß BrokenHeart

    "success has many fathers, failure is an orphan"

  • Betrifft die Error-Meldung in dem genannten Script:

    Da wird ja die Zeile 89 gemeldet, die in dem Code für den verschiebbaren Button liegt.


    Wird der Code deaktiviert, und das Original verwendet, dann gibt es keine Fehler mehr.

    Was müsste in besagter Zeile menu.setAttribute("type", "menu"); geändert werden?

    Grüße vom FuchsFan