Ich habe eine Webanwendung, die entsprechend dem aktuell angemeldeten Benutzer gekennzeichnet ist. Ich möchte das Favicon der Seite in das Logo der Handelsmarke ändern, kann jedoch keinen Code oder Beispiele dafür finden um dies zu tun. Hat das schon mal jemand erfolgreich gemacht?
Ich stelle mir ein Dutzend Symbole in einem Ordner vor, und der Verweis auf die zu verwendende Datei favicon.ico wird nur dynamisch zusammen mit der HTML-Seite generiert. Gedanken?
javascript
html
dom
favicon
SqlRyan
quelle
quelle
Antworten:
Warum nicht?
Firefox sollte damit cool sein.
bearbeitet, um vorhandene Symbole ordnungsgemäß zu überschreiben
quelle
shortcut
aus demrel
Attribut entfernen .shortcut
ist eine ungültige IE-proprietäre Linkbeziehung!Hier ist ein Code, der in Firefox, Opera und Chrome funktioniert (im Gegensatz zu jeder anderen hier veröffentlichten Antwort). Hier ist eine andere Demo von Code, die auch in IE11 funktioniert . Das folgende Beispiel funktioniert möglicherweise nicht in Safari oder Internet Explorer.
Sie würden es dann wie folgt verwenden:
Weggabeln oder Demo ansehen .
quelle
document.head || document.head = document.getElementsByTagName('head')[0];
Uncaught ReferenceError: Invalid left-hand side in assignment
Wenn Sie das folgende HTML-Snippet haben:
Sie können das Favicon mit Javascript ändern, indem Sie beispielsweise das HREF-Element in diesem Link ändern (vorausgesetzt, Sie verwenden JQuery):
Sie können auch ein Canvas-Element erstellen und die HREF als ToDataURL () der Zeichenfläche festlegen, ähnlich wie dies beim Favicon Defender der Fall ist.
quelle
favicon.png
. Dies muss möglicherweise serverseitig erfolgen.href
Attribut "#favicon
using" ändern.document.getElementById('favicon').setAttribute('href','favicon2.png')
Vielleicht können Sie es Ihrem Beitrag @fserb hinzufügen?jQuery-Version:
oder noch besser:
Vanilla JS Version:
quelle
Ein moderner Ansatz:
Sie können es dann folgendermaßen verwenden:
quelle
Das Favicon wird im Head-Tag mit folgenden Elementen deklariert:
Sie sollten in der Lage sein, den Namen des gewünschten Symbols in den Ansichtsdaten zu übergeben und in das Head-Tag zu werfen.
quelle
Hier ist ein Code, mit dem ich Opera, Firefox und Chrome dynamische Favicon-Unterstützung hinzufüge. Ich konnte IE oder Safari jedoch nicht zum Laufen bringen. Grundsätzlich erlaubt Chrome dynamische Favoriten, aktualisiert sie jedoch nur, wenn sich der Speicherort der Seite (oder ein
iframe
usw. darin) ändert, soweit ich das beurteilen kann:Um die Favoriten zu ändern, gehen Sie einfach
favicon.change("ICON URL")
oben beschrieben vor.(Dank an http://softwareas.com/dynamic-favicons für den Code, auf dem ich diesen basiert habe.)
quelle
Ich würde Gregs Ansatz verwenden und einen benutzerdefinierten Handler für favicon.ico erstellen. Hier ist ein (vereinfachter) Handler, der funktioniert:
Anschließend können Sie diesen Handler im Abschnitt httpHandlers der Webkonfiguration in IIS6 oder die Funktion "Handlerzuordnungen" in IIS7 verwenden.
quelle
Die einzige Möglichkeit, dies für den IE zum Laufen zu bringen, besteht darin, Ihren Webserver so einzustellen, dass Anforderungen für * .ico zum Aufrufen Ihrer serverseitigen Skriptsprache (PHP, .NET usw.) behandelt werden. Richten Sie außerdem * .ico ein, um zu einem einzelnen Skript umzuleiten und dieses Skript die richtige Favicon-Datei liefern zu lassen. Ich bin mir sicher, dass es immer noch einige interessante Probleme mit dem Cache geben wird, wenn Sie in der Lage sein möchten, im selben Browser zwischen verschiedenen Favoriten hin und her zu springen.
quelle
Für diejenigen, die jQuery verwenden, gibt es eine einzeilige Lösung:
quelle
Oder wenn du ein Emoticon willst :)
Requisiten an https://koddsson.com/posts/emoji-favicon/
quelle
Laut WikiPedia können Sie mithilfe des
link
Tags imhead
Abschnitt mit dem Parameter von angeben, welche Favicon-Datei geladen werden sollrel="icon"
.Zum Beispiel:
Ich stelle mir vor, wenn Sie für diesen Anruf dynamische Inhalte schreiben möchten, haben Sie Zugriff auf Cookies, damit Sie Ihre Sitzungsinformationen auf diese Weise abrufen und entsprechende Inhalte präsentieren können.
Möglicherweise haben Sie Probleme mit Dateiformaten (der IE unterstützt angeblich nur das ICO-Format, während die meisten anderen PNG- und GIF-Bilder unterstützen) und möglicherweise mit Caching-Problemen, sowohl im Browser als auch über Proxys. Dies wäre auf die ursprüngliche Absicht von Favicon zurückzuführen, ein Lesezeichen mit dem Mini-Logo einer Site zu markieren.
quelle
Ja absolut möglich
z.B
Dann was serverseitige Sprache / framework Sie verwenden sollten leicht in der Lage sein , um die finden Datei auf dem userId basiert und es in servieren Antwort auf diese Anfrage .
Aber um Favicons richtig zu machen (es ist eigentlich ein sehr komplexes Thema ), lesen Sie bitte die Antwort hier https://stackoverflow.com/a/45301651/661584
Viel einfacher als alle Details selbst herauszuarbeiten.
Genießen.
quelle
<link>
, sondern stattdessen nach derapple-touch-icon
oder einer anderen solchen Variante suchen .Ich benutze favico.js in meinen Projekten.
Sie können das Favicon in eine Reihe vordefinierter und auch benutzerdefinierter Formen ändern.
Intern wird es
canvas
für das Rendern und diebase64
Daten-URL für die Symbolcodierung verwendet.Die Bibliothek hat auch nette Funktionen: Symbolabzeichen und Animationen; angeblich kannst du das webcam video sogar in das icon streamen :)
quelle
Ich benutze diese Funktion ständig, wenn ich Websites entwickle ... damit ich auf einen Blick sehen kann, auf welcher Registerkarte Local, Dev oder Prod ausgeführt werden.
Jetzt, da Chrome SVG-Favicons unterstützt, wird es viel einfacher.
Tampermonkey-Skript
Unter https://gist.github.com/elliz/bb7661d8ed1535c93d03afcd0609360f finden Sie ein Tampermonkey-Skript, das auf eine Demo-Site verweist, die ich unter https://elliz.github.io/svg-favicon/ erstellt habe.
Grundcode
Angepasst an eine andere Antwort ... könnte verbessert werden, aber gut genug für meine Bedürfnisse.
Fügen Sie einfach Ihr eigenes SVG (möglicherweise mit Jake Archibalds SVGOMG gereinigt, wenn Sie ein Tool verwenden) in die Konstante oben ein. Stellen Sie sicher, dass es quadratisch ist (mithilfe des viewBox-Attributs) und Sie können loslegen.
quelle