Tengo una aplicación web que está marcada según el usuario que ha iniciado sesión actualmente. Me gustaría cambiar el favicon de la página para que sea el logotipo de la etiqueta privada, pero no puedo encontrar ningún código ni ejemplos de cómo para hacer esto. ¿Alguien ha hecho esto con éxito antes?
Me imagino tener una docena de iconos en una carpeta, y la referencia a qué archivo favicon.ico usar se genera dinámicamente junto con la página HTML. Pensamientos?
javascript
html
dom
favicon
SqlRyan
fuente
fuente
Respuestas:
Por qué no?
Firefox debería ser genial con eso.
editado para sobrescribir correctamente los iconos existentes
fuente
shortcut
delrel
atributo.shortcut
es una relación de enlace propietaria de IE no válida!Aquí hay un código que funciona en Firefox, Opera y Chrome (a diferencia de cualquier otra respuesta publicada aquí). Aquí hay una demostración de código diferente que también funciona en IE11 . El siguiente ejemplo podría no funcionar en Safari o Internet Explorer.
Luego lo usaría de la siguiente manera:
Bifurca o mira una demostración .
fuente
document.head || document.head = document.getElementsByTagName('head')[0];
Uncaught ReferenceError: Invalid left-hand side in assignment
Si tiene el siguiente fragmento de HTML:
Puede cambiar el favicon usando Javascript cambiando el elemento HREF en este enlace, por ejemplo (suponiendo que esté usando JQuery):
También puede crear un elemento Canvas y establecer el HREF como ToDataURL () del canvas, al igual que lo hace el Defensor Favicon .
fuente
favicon.png
. Es posible que esto deba hacerse en el lado del servidor.href
atributo de#favicon
usar ¿document.getElementById('favicon').setAttribute('href','favicon2.png')
Tal vez puede agregarlo a su publicación @fserb?Versión de jQuery:
o mejor:
Versión Vanilla JS:
fuente
Un enfoque más moderno:
Luego puede usarlo así:
fuente
El favicon se declara en la etiqueta de la cabeza con algo como:
Debería poder simplemente pasar el nombre del icono que desea a lo largo de los datos de la vista y arrojarlo a la etiqueta de la cabeza.
fuente
Aquí hay un código que uso para agregar soporte de favicon dinámico a Opera, Firefox y Chrome. Sin embargo, no pude hacer que IE o Safari funcionaran. Básicamente, Chrome permite favicons dinámicos, pero solo los actualiza cuando la ubicación de la página (o un
iframe
etc.) cambia hasta donde puedo decir:Para cambiar los favicons, solo
favicon.change("ICON URL")
usa lo anterior.(Créditos a http://softwareas.com/dynamic-favicons por el código en el que basé esto).
fuente
Usaría el enfoque de Greg y haría un controlador personalizado para favicon.ico Aquí hay un controlador (simplificado) que funciona:
Luego puede usar ese controlador en la sección httpHandlers de la configuración web en IIS6 o usar la función 'Asignaciones de controladores' en IIS7.
fuente
La única forma de hacer que esto funcione para IE es configurar su servidor web para que trate las solicitudes de * .ico para que llame al lenguaje de script del lado del servidor (PHP, .NET, etc.). También configure * .ico para redirigir a un solo script y hacer que este script entregue el archivo favicon correcto. Estoy seguro de que todavía habrá algunos problemas interesantes con la memoria caché si desea poder rebotar de un lado a otro en el mismo navegador entre diferentes favicons.
fuente
Hay una solución de línea única para quienes usan jQuery:
fuente
O si quieres un emoticon :)
Atrezzo a https://koddsson.com/posts/emoji-favicon/
fuente
Según WikiPedia , puede especificar qué archivo favicon cargar con la
link
etiqueta en lahead
sección, con un parámetro derel="icon"
.Por ejemplo:
Me imagino que si quisieras escribir contenido dinámico para esa llamada, tendrías acceso a cookies para poder recuperar la información de tu sesión de esa manera y presentar el contenido apropiado.
Puede fallar los formatos de archivo (se dice que IE solo admite su formato .ICO, mientras que la mayoría de los demás admite imágenes PNG y GIF) y posiblemente problemas de almacenamiento en caché, tanto en el navegador como a través de servidores proxy. Esto se debe a la versión original de favicon, específicamente, para marcar un marcador con el mini-logotipo de un sitio.
fuente
Si totalmente posible
p.ej
Entonces, sea cual sea el lenguaje / marco del lado del servidor que utilice, debería poder encontrar fácilmente el archivo en función del ID de usuario y servirlo en respuesta a esa solicitud .
Pero para hacer favicons correctamente (en realidad es un tema realmente complejo ), consulte la respuesta aquí https://stackoverflow.com/a/45301651/661584
Mucho más fácil que resolver todos los detalles usted mismo.
Disfrutar.
fuente
<link>
, sino que buscan laapple-touch-icon
u otra variante.Yo uso favico.js en mis proyectos.
Permite cambiar el favicon a una gama de formas predefinidas y también personalizadas.
Internamente se utiliza
canvas
para la representación ybase64
URL de datos para la codificación de iconos.La biblioteca también tiene buenas características: insignias de iconos y animaciones; supuestamente, incluso puede transmitir el video de la cámara web al icono :)
fuente
Uso esta función todo el tiempo cuando desarrollo sitios ... así puedo ver de un vistazo qué pestaña tiene local, desarrollo o producción ejecutándose.
Ahora que Chrome admite favicons SVG, lo hace mucho más fácil.
Tampermonkey Script
Eche un vistazo a https://gist.github.com/elliz/bb7661d8ed1535c93d03afcd0609360f para obtener un script de tampermonkey que apunta a un sitio de demostración que lancé en https://elliz.github.io/svg-favicon/
Codigo basico
Adaptado esto de otra respuesta ... podría mejorarse, pero lo suficientemente bueno para mis necesidades.
Simplemente coloque su propio SVG (tal vez se limpie con el SVGOMG de Jake Archibald si está usando una herramienta) en la constante en la parte superior. Asegúrate de que sea cuadrado (con el atributo viewBox) y listo.
fuente