У меня есть веб-приложение с маркой в соответствии с пользователем, который в данный момент вошел в систему. Я хочу изменить значок страницы на логотип частной метки, но я не могу найти ни кода, ни примеров того, как сделать это. Кто-нибудь успешно делал это раньше?
Я представляю дюжину значков в папке, и ссылка на файл favicon.ico для использования просто генерируется динамически вместе со страницей HTML. Мысли?
javascript
html
dom
favicon
SqlRyan
источник
источник
Ответы:
Почему нет?
Firefox должен быть крут с этим.
отредактировано, чтобы правильно переписать существующие значки
источник
shortcut
изrel
атрибута.shortcut
недопустимое отношение ссылок между IE и частной собственностью!Вот некоторый код, который работает в Firefox, Opera и Chrome (в отличие от любого другого ответа, опубликованного здесь). Вот другая демонстрация кода, которая работает и в IE11 . Следующий пример может не работать в Safari или Internet Explorer.
Затем вы бы использовали его следующим образом:
Разветвитесь или посмотрите демо .
источник
document.head || document.head = document.getElementsByTagName('head')[0];
Uncaught ReferenceError: Invalid left-hand side in assignment
Если у вас есть следующий фрагмент HTML:
Вы можете изменить значок, используя Javascript, например, изменив элемент HREF в этой ссылке (при условии, что вы используете JQuery):
Вы также можете создать элемент Canvas и установить HREF как ToDataURL () холста, так же, как это делает Защитник Favicon .
источник
favicon.png
. Это может быть необходимо сделать на стороне сервера.href
атрибут#favicon
использованияdocument.getElementById('favicon').setAttribute('href','favicon2.png')
Возможно, вы можете добавить его в свой пост @fserb?Версия jQuery:
или даже лучше:
Версия Vanilla JS:
источник
Более современный подход:
Затем вы можете использовать его так:
источник
Фавикон объявлен в теге head с чем-то вроде:
Вы должны быть в состоянии просто передать имя нужного вам значка в данных представления и добавить его в тег head.
источник
Вот некоторый код, который я использую, чтобы добавить динамическую поддержку favicon в Opera, Firefox и Chrome. Я не мог заставить IE или Safari работать, хотя. По сути, Chrome допускает динамические значки, но он обновляет их только тогда, когда местоположение страницы (или и
iframe
т. Д. В ней) изменяется, насколько я могу судить:Чтобы изменить значок, просто перейдите
favicon.change("ICON URL")
по выше.(кредиты http://softwareas.com/dynamic-favicons за код, на котором я это основал.)
источник
Я бы использовал подход Грега и сделал бы собственный обработчик для favicon.ico. Вот (упрощенный) обработчик, который работает:
Затем вы можете использовать этот обработчик в разделе httpHandlers веб-конфигурации в IIS6 или использовать функцию «Отображения обработчиков» в IIS7.
источник
Единственный способ заставить эту работу работать в IE - настроить ваш веб-сервер на обработку запросов для * .ico для вызова языка сценариев на стороне сервера (PHP, .NET и т. Д.). Также настройте * .ico для перенаправления на один скрипт, чтобы этот скрипт доставлял правильный файл favicon. Я уверен, что все еще будут некоторые интересные проблемы с кешем, если вы хотите иметь возможность перебрасывать назад и вперед в одном и том же браузере между различными значками.
источник
Для тех, кто использует jQuery, есть решение с одной строкой:
источник
Или если вы хотите смайлик :)
Реквизиты для https://koddsson.com/posts/emoji-favicon/
источник
Согласно WikiPedia , вы можете указать, какой файл значка загружать, используя
link
тег вhead
разделе с параметромrel="icon"
.Например:
Я полагаю, что если вы захотите написать динамический контент для этого вызова, у вас будет доступ к файлам cookie, чтобы вы могли таким образом получать информацию о сеансе и представлять соответствующий контент.
Возможно, вам не нравятся форматы файлов (по сообщениям, IE поддерживает только его формат .ICO, в то время как большинство остальных поддерживает изображения PNG и GIF) и, возможно, проблемы с кэшированием как в браузере, так и через прокси. Это было бы из-за оригинального предпочтения favicon, в частности, для маркировки закладки мини-логотипом сайта.
источник
Да вполне возможно
например
Тогда какой бы язык или фреймворк на стороне сервера вы не использовали, он легко сможет найти файл на основе идентификатора пользователя и обработать его в ответ на этот запрос .
Но чтобы правильно делать значки (это действительно очень сложная тема ), пожалуйста, посмотрите ответ здесь https://stackoverflow.com/a/45301651/661584
Намного проще, чем прорабатывать все детали самостоятельно.
Наслаждаться.
источник
<link>
, а вместо этого ищутapple-touch-icon
или какой-либо другой такой вариант.Я использую favico.js в своих проектах.
Это позволяет изменить значок на ряд заранее определенных форм, а также пользовательских.
Внутренне он использует
canvas
для рендеринга иbase64
данные URL для кодирования значков.Библиотека также имеет приятные функции: значки значков и анимации; предположительно, вы даже можете транслировать видео с веб-камеры на иконку :)
источник
Я использую эту функцию все время при разработке сайтов ... так что я сразу вижу, на какой вкладке работает local, dev или prod.
Теперь, когда Chrome поддерживает SVG-значки, он стал намного проще.
Скрипт Tampermonkey
Поищите на сайте https://gist.github.com/elliz/bb7661d8ed1535c93d03afcd0609360f скрипт tampermonkey, который указывает на демонстрационный сайт, который я установил на https://elliz.github.io/svg-favicon/
Основной код
Адаптировал это из другого ответа ... мог бы быть улучшен, но достаточно хорош для моих нужд.
Просто вставьте свой собственный SVG (возможно, очищенный с помощью SVGOMG Джейка Арчибальда, если вы используете инструмент) в конст вверху. Убедитесь, что он квадратный (с использованием атрибута viewBox), и все готово.
источник