Alternatives/Fallback Icon mit Javascript oder CSS festlegen?

  • Firefox-Version
    115.02
    Betriebssystem
    macOs 10.13.6

    Ich bastle gerade an einer Scriptversion für dieses Thema, und es gibt da noch eine Frage, auf die ich keine Antwort finde. :/

    Das Script benutzt eine Kombination aus JS und CSS, um selber definierte Icons für die beiden erzeugten Zähler bereitzustellen.

    Meine Version soll zwei von Firefox übernommene Icons bereitstellen, für Leute die keine eigenen Icons haben, aber es auch erlauben solche eigenen Icons zu benutzen.

    Was so auch klappt, aber der User muss manuell das Script editieren, um seine eigenen Bilder benutzen zu können.

    Idealerweise gäbe es im Script eine Funktion, die im Falle eines nicht vorhandenen/gefundenen/fehlerhaften User Icons automatisch das Icon von Firefox als Alternative/Fallback lädt.

    Hier das Script, die relevanten Einträge sind wohl die Zeilen 20 - 22, sowie 74 - 75 und 101 -102.

    Ein Versuch mit CSS war schon, zB in Zeile 76 sowas einzufügen: background-image: url(${profilePath}/${icon1}), url("chrome://global/skin/icons/folder.svg"); ; was dann aber zu doppelt angezeigten Bildern führt (bei transparenten Bildteilen); ist auch keine elegante oder leistungseffiziente Lösung vermute ich.

  • Hallo,

    Idealerweise gäbe es im Script eine Funktion, die im Falle eines nicht vorhandenen/gefundenen/fehlerhaften User Icons automatisch das Icon von Firefox als Alternative/Fallback lädt.

    Meinst du nicht, dass das Overengineering ist? Wer ein Script nutzt, sollte in der Lage sein, entsprechende Grafiken abzulegen oder eine Option im Code zu ändern, um die Darstellung entsprechend anzupassen. Für ein „Fallback“ müsstest du immer erst prüfen, ob die Grafik existiert. Das wird nicht ohne Verzögerung möglich sein und wird dann ja auch immer ausgeführt, wenn es die Grafik gibt. Ich sehe da die Kosten höher als den Nutzen.

    Ich habe das nicht im Kontext des Scripts und mit einer lokalen Datei getestet, aber die Idee wäre sonst wohl sowas in der Art:

    JavaScript
    const img = document.createElement('img');
    img.onerror = function () {
      // Grafik existiert nicht, implementiere die Fallback-Logik
    }
    img.src = 'pfad/zur/datei.png';
  • Horstmann

    Oh, ich hätte da was!

    Es geht um ein Skript, welches Icons in der Adresszeile einfügt!

    Kannst ja mal reinschnuppern.

    Es geht um diesen Teil!

    Da wird erst geprüft, ob es ein Favicon gibt, und es wird genutzt,

    oder, wenn es keines gibt, wird ein festgelegtes genommen.

    Hier ist z.B. gerade Symbol, also ein Icon im Pfad ausgewählt.

    Hier der Link zum kompletten Thread.

    RE: Eigene Icons für about:xxx in der Urlbar, bzw. im Container

    Mit <3lichem Gruß

    Mira

  • Meinst du nicht, dass das Overengineering ist? Wer ein Script nutzt, sollte in der Lage sein, entsprechende Grafiken abzulegen oder eine Option im Code zu ändern, um die Darstellung entsprechend anzupassen. Für ein „Fallback“ müsstest du immer erst prüfen, ob die Grafik existiert. Das wird nicht ohne Verzögerung möglich sein und wird dann ja auch immer ausgeführt, wenn es die Grafik gibt. Ich sehe da die Kosten höher als den Nutzen.

    Ich habe das nicht im Kontext des Scripts und mit einer lokalen Datei getestet, aber die Idee wäre sonst wohl sowas in der Art:

    JavaScript
    const img = document.createElement('img');
    img.onerror = function () {
      // Grafik existiert nicht, implementiere die Fallback-Logik
    }
    img.src = 'pfad/zur/datei.png';

    Das ist ein guter Punkt; es sollte eigentlich anzunehmen sein, dass der Benutzer von so einem Script sich das anpassen kann.

    Vielleicht wäre es sinnvoller, das Fallback Icon von Firefox ganz rauszulassen, oder als auskommentierte Option im CSS Teil zu einzubinden. :/

    Dankeschön för den Code :) ; ich bin beim Recherchieren auf ähnliche onerror Lösungen gestossen - leider haperts am konkreten Implementieren, mangels Kenntnis.


    Horstmann

    Oh, ich hätte da was!

    Es geht um ein Skript, welches Icons in der Adresszeile einfügt!

    Kannst ja mal reinschnuppern.

    Dankeschön, schau ich mir an! :)

    Einmal editiert, zuletzt von Horstmann (18. Juli 2023 um 15:51) aus folgendem Grund: Ein Beitrag von Horstmann mit diesem Beitrag zusammengefügt.