Mam aplikację internetową oznaczoną marką według aktualnie zalogowanego użytkownika. Chciałbym zmienić favicon strony na logo prywatnej marki, ale nie mogę znaleźć żadnego kodu ani żadnych przykładów tego, jak zrobić to. Czy ktoś wcześniej to zrobił?
Wyobrażam sobie, że mam tuzin ikon w folderze, a odniesienie do pliku favicon.ico, którego należy użyć, jest generowane dynamicznie wraz ze stroną HTML. Myśli?
javascript
html
dom
favicon
SqlRyan
źródło
źródło
Odpowiedzi:
Dlaczego nie?
Firefox powinien być z tym fajny.
edytowane w celu poprawnego zastąpienia istniejących ikon
źródło
shortcut
zrel
atrybutu.shortcut
jest niepoprawną powiązaną z IE relacją łącza!Oto kod, który działa w Firefox, Opera i Chrome (w przeciwieństwie do wszystkich innych odpowiedzi tutaj zamieszczonych). Oto inna wersja kodu, która działa również w IE11 . Poniższy przykład może nie działać w przeglądarce Safari lub Internet Explorer.
Następnie użyjesz go w następujący sposób:
Odsuń się lub obejrzyj wersję demo .
źródło
document.head || document.head = document.getElementsByTagName('head')[0];
Uncaught ReferenceError: Invalid left-hand side in assignment
Jeśli masz następujący fragment kodu HTML:
Możesz zmienić ikonę ulubionych za pomocą Javascript, zmieniając element HREF w tym linku, na przykład (zakładając, że używasz JQuery):
Możesz także utworzyć element Canvas i ustawić HREF jako ToDataURL () płótna, podobnie jak robi to Favicon Defender .
źródło
favicon.png
. Może to wymagać wykonania po stronie serwera.href
atrybut#favicon
używania.document.getElementById('favicon').setAttribute('href','favicon2.png')
Może możesz dodać go do swojego posta @fserb?Wersja jQuery:
lub nawet lepiej:
Wersja Vanilla JS:
źródło
Bardziej nowoczesne podejście:
Następnie możesz użyć go w następujący sposób:
źródło
Favicon jest zadeklarowany w tagu head za pomocą czegoś takiego:
Powinieneś być w stanie przekazać nazwę ikony, którą chcesz wraz z danymi widoku i wrzucić ją do tagu head.
źródło
Oto kod, którego używam, aby dodać obsługę dynamicznego favicon do Opera, Firefox i Chrome. Nie mogłem jednak uruchomić IE ani Safari. Zasadniczo Chrome zezwala na dynamiczne ikony ulubionych, ale aktualizuje je tylko wtedy, gdy położenie strony (lub
iframe
itp. W nim) zmienia się, o ile wiem:Aby zmienić ulubione, po prostu
favicon.change("ICON URL")
skorzystaj z powyższego.(podziękowania dla http://softwareas.com/dynamic-favicons za kod, na którym ja bazowałem.)
źródło
Chciałbym użyć podejścia Grega i stworzyć niestandardowy moduł obsługi dla favicon.ico Oto (uproszczony) moduł obsługi, który działa:
Następnie możesz użyć tego modułu obsługi w sekcji httpHandlers konfiguracji sieci w IIS6 lub użyć funkcji „Mapowania modułu obsługi” w IIS7.
źródło
Jedynym sposobem, aby ta funkcja działała w przeglądarce IE, jest ustawienie serwera WWW do obsługi żądań * .ico w celu wywołania języka skryptowego po stronie serwera (PHP, .NET itp.). Skonfiguruj również * .ico, aby przekierować do jednego skryptu i aby ten skrypt dostarczył poprawny plik favicon. Jestem pewien, że nadal będą jakieś interesujące problemy z pamięcią podręczną, jeśli chcesz mieć możliwość odbijania się w tej samej przeglądarce między różnymi ikonami ulubionych.
źródło
Jest jedno rozwiązanie dla tych, którzy korzystają z jQuery:
źródło
Lub jeśli chcesz emotikon :)
Rekwizyty do https://koddsson.com/posts/emoji-favicon/
źródło
Zgodnie z WikiPedia , możesz określić, który plik favicon ma zostać załadowany za pomocą
link
znacznika whead
sekcji, z parametremrel="icon"
.Na przykład:
Wyobrażam sobie, że gdybyś chciał napisać dynamiczną treść dla tego połączenia, miałbyś dostęp do plików cookie, aby w ten sposób uzyskać informacje o sesji i przedstawić odpowiednią treść.
Możesz nie zgadzać się z formatami plików (IE podobno obsługuje tylko format .ICO, podczas gdy większość innych obsługuje obrazy PNG i GIF) i możliwe problemy z buforowaniem, zarówno w przeglądarce, jak i przez serwery proxy. Stałoby się tak z powodu pierwotnej uwagi favicon, a konkretnie do oznaczania zakładki mini-logo strony.
źródło
Tak, całkowicie możliwe
na przykład
W takim razie, niezależnie od używanego języka / frameworku po stronie serwera , powinno być łatwo znaleźć plik na podstawie userId i podać go w odpowiedzi na to żądanie .
Ale aby właściwie robić favikony (to naprawdę bardzo złożony temat ), zobacz odpowiedź tutaj https://stackoverflow.com/a/45301651/661584
O wiele łatwiej niż samodzielne wypracowanie wszystkich szczegółów.
Cieszyć się.
źródło
<link>
, ale zamiast tego szukająapple-touch-icon
innego wariantu.Używam favico.js w moich projektach.
Pozwala zmienić favicon do szeregu predefiniowanych kształtów, a także niestandardowych.
Wewnętrznie używa
canvas
do renderowania ibase64
adresu URL danych do kodowania ikon.Biblioteka ma również ładne funkcje: znaczki ikon i animacje; podobno możesz nawet przesyłać strumieniowo wideo z kamery internetowej do ikony :)
źródło
Korzystam z tej funkcji przez cały czas przy tworzeniu witryn ... dzięki czemu mogę szybko zobaczyć, która karta ma działającą lokalnie, programistę lub prod.
Teraz, gdy Chrome obsługuje ulubione SVG, sprawia, że jest to o wiele łatwiejsze.
Skrypt Tampermonkey
Popatrz na https://gist.github.com/elliz/bb7661d8ed1535c93d03afcd0609360f w celu uzyskania skryptu tampermonkey, który wskazuje na stronę demo, którą podrzuciłem https://elliz.github.io/svg-favicon/
Kod podstawowy
Zaadaptowałem to z innej odpowiedzi ... może być ulepszone, ale wystarczająco dobre dla moich potrzeb.
Po prostu włóż własny plik SVG (być może wyczyszczony za pomocą SVGOMG Jake'a Archibalda, jeśli używasz narzędzia) w const na górze. Upewnij się, że jest kwadratowy (używając atrybutu viewBox) i możesz już iść.
źródło