Blog. Just Blog

Динамическое изменение favicon сайта в браузере

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Web-мастеру и не только | Автор: ManHunter
Ни для кого не секрет, как на сайт добавляется иконка, которая отображается в адресной строке браузера. Достаточно прописать ссылку на нее в заголовке HTML-страницы:
  1. <html>
  2.   <head>
  3.     <link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
  4.   <head>
  5.   <body>
  6.   ...
  7.   </body>
  8. </html>
С добавлением никаких сложностей нет. А вот можно ли динамически поменять иконку после того, как страница загружена? Первое, что приходит в голову, это присвоить тегу link с иконкой какой-нибудь id и затем попробовать поменять его свойства через DOM. Увы, такой способ не срабатывает. Чтобы динамически поменять иконку страницы, надо сперва удалить тег link со старой иконкой из заголовка страницы, а затем добавить его с новым содержимым. Делается это так:
  1. <script type="text/javascript">
  2. // Ссылка на файл новой иконки
  3. var icon='new_favicon.ico';
  4.  
  5. var head document.getElementsByTagName('head')[0];
  6.  
  7. // Найти и удалить старую иконку из тега HEAD
  8. var links head.getElementsByTagName('link');
  9. for (var 0links.lengthi++) {
  10.     var lnk links[i];
  11.     if (lnk.rel=='shortcut icon') {
  12.         head.removeChild(lnk);
  13.     }
  14. }
  15.  
  16. // Добавить новую иконку
  17. var link document.createElement('link');
  18. link.setAttribute('href',icon);
  19. link.setAttribute('type','image/x-icon');
  20. link.setAttribute('rel','shortcut icon');
  21. head.appendChild(link);
  22. </script>
Метод кроссбраузерный и самодостаточный, не требует никаких сторонних библиотек. Таким способом, например, можно оповестить пользователя о каком-нибудь событии, когда вкладка со страницей не активна. Для истинных извращенцев есть даже игра в favicon. Главное не злоупотреблять анимацией в рабочих проектах.

Поделиться ссылкой ВКонтакте
Просмотров: 10709 | Комментариев: 14

Внимание! Статья опубликована больше года назад, информация могла устареть!

Комментарии

Отзывы посетителей сайта о статье
Leka (12.01.2016 в 17:38):
В IE 11 не работает(
ManHunter (28.10.2014 в 10:59):
А вариант, что это просто никому не интересно, не рассматривался?
Dogica (27.10.2014 в 19:24):
решения нет?
или очень сложно?
Dogica (25.10.2014 в 19:53):
Ну и сразу уже по дороге..
Хочется скажем дать пользователю набор из 10 иконок
При каждом нажатии на кнопу чтобы менялась на следующую..
Возможно ли такое?
Понимаю что нужно определить VAR для каждой иконки в предложенной вами функции.. ну а дальше что делать? : )
-----------------------------------------
Буду очень благодарен за советы и помощь
Вот мой сайт: [del]
Dogica (25.10.2014 в 19:37):
Привет!
Простите конечно.. дилетантский вопрос
Как вызвать эту функцию в HTML коде странички?
Кнопку хочу сделать для пользователей
при нажатии на которую меняется Фавикон
ManHunter (16.10.2014 в 15:02):
Разве IE еще не сдох?
Артемий (16.10.2014 в 14:54):
В IE8 не меняется иконка
NorTan (01.06.2014 в 23:27):
По прежнему натыкаюсь на твой блог в своих поисках. Каждый раз все чаще и чаще, чему очень рад!
ManHunter (25.04.2014 в 09:09):
Там иконка рисуется через canvas, но в браузере меняется по такому же принципу.
Игорь (25.04.2014 в 06:10):
использую плагин для уведомления пользователей о появлении новых личных сообщений: http://oodavid.com/jQueryFaviconNotifier/
ManHunter (24.04.2014 в 23:48):
Зачем? Камуфляж включен только на рабочем компе.
voila (24.04.2014 в 21:55):
Ну, тогда проще все значки местопребывания своего Арго разом поменять на добро-корпо тогда уж)
ManHunter (24.04.2014 в 20:33):
Ну вот тебе практическое применение: при включенной настройке "камуфляж" этот сайт при потере фокуса страницы меняет заголовок на гугл и иконку на гугловскую. И когда кто-то заглядывает через плечо в экран, то видит рабочую вкладку, где я занимаюсь делом и рядом вкладку гугла. И больше ничего подозрительного. При возврате фокуса на страницу заголовок и иконка меняются обратно.
voila (24.04.2014 в 20:26):
Признаться, действительно серьезного практического применения этой забавной штуке, кроме как поиграться, лично я не в силах придумать, ага. Но спасибо, поигралсо)

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.06 сек. / MySQL: 2 (0.0063 сек.) / Память: 4.5 Mb
Наверх