Динамический favicon
Здравствуйте товарищи!
Чат умеет выводить во вкладку браузера (в title) уведомления о новых сообщениях. Хочу попробовать одновременно с этим менять favicon. Нашел вот такой скрипт: let iconNew = 'https://noviy-kovcheg.ru/favicon.png'; function changeFavicon() { document.getElementById('favicon').href = iconNew; function newUpdate() { update = setInterval(changeFavicon, 3000); } var docBody = document.getElementsByTagName('body')[0]; docBody.onload = newUpdate; А вот фрагмент кода который как я понимаю меняет title: kide.avisar = { mensajes_nuevos: 0, privados_nuevos: 0, avisar: false, original_title: "", onFocusGained: function () { //chrome bug kide.avisar.avisar = false; setTimeout(function () { document.title = kide.avisar.original_title; }, 100); }, onFocusLost: function () { kide.avisar.avisar = true; kide.avisar.mensajes_nuevos = 0; kide.avisar.privados_nuevos = 0; }, handleVisibility: function () { if (typeof window.onfocus == "function") { var focus = window.onfocus; window.onfocus = function () { kide.avisar.onFocusGained(); (focus)(); }; } else { window.onfocus = kide.avisar.onFocusGained; } if (typeof window.onblur == "function") { var blur = window.onblur; window.onblur = function () { kide.avisar.onFocusLost(); (blur)(); }; } else { window.onblur = kide.avisar.onFocusLost; } kide.avisar.original_title = document.title; kide.events.add('onPrivadosReload', kide.avisar.onPrivadosReload); kide.events.add('onAjaxReload', kide.avisar.onAjaxReload); }, onPrivadosReload: function (xml) { if (kide.avisar.avisar) { var nuevos = xml.getElementsByTagName('mensaje').length + xml.getElementsByTagName('mensaje_offline').length; kide.avisar.privados_nuevos += nuevos; kide.avisar.changeTitle(); } }, onAjaxReload: function (xml) { if (kide.avisar.avisar) { kide.avisar.mensajes_nuevos += xml.getElementsByTagName('mensaje').length; kide.avisar.changeTitle(); } }, changeTitle: function () { if (kide.avisar.privados_nuevos > 0 || kide.avisar.mensajes_nuevos > 0) { var msg = kide.msg.avisar; msg = msg.replace("%p", kide.avisar.privados_nuevos); msg = msg.replace("%m", kide.avisar.mensajes_nuevos); document.title = msg; } } }; kide.onLoad(function () { kide.avisar.handleVisibility(); }, function () { }); Куда только не вставлял код, или ломает чат или не работает :( |
Ubivectel,
строка 63 добавить document.querySelector("link[rel~='icon']").href = 'https://noviy-kovcheg.ru/favicon.png'; |
Работает, но остается когда переходишь на эту вкладку браузера
|
Как-то сделал, вставил после строки:
document.title = kide.avisar.original_title; строку: document.querySelector("link[rel~='icon']").href = 'исходный фавикон'; может не лучший вариант, но работает. рони спасибо ) |
Часовой пояс GMT +3, время: 07:29. |