layout.js: añade favicon dinámico (icono del logo en la pestaña)

This commit is contained in:
2026-09-13 13:07:08 +00:00
parent 07282ddc59
commit 00a0b09e20

View File

@@ -1,23 +1,29 @@
/* ... /* ...
AQUÍ ARRIBA ESTÁ TODO TU CÓDIGO ORIGINAL DEL LAYOUT AQUÍ ARRIBA ESTÁ TODO TU CÓDIGO ORIGINAL DEL LAYOUT
(El que dibuja el sidebar, el header, el menú, etc.) (El que dibuja el sidebar, el header, el menú, etc.)
... */ ... */
// ========================================== // ==========================================
// 🎨 INYECTOR DE LOGO CORPORATIVO Y PWA (ICONOS APP) // 🎨 INYECTOR DE LOGO CORPORATIVO Y PWA (ICONOS APP)
// ========================================== // ==========================================
// 1. INYECCIÓN SÚPER RÁPIDA (Para engañar a los iPhone 🍏) // Crea (o reutiliza) un <link> de icono en el <head> y le pone la URL indicada
function setIconLink(rel, href) {
let link = document.querySelector(`link[rel='${rel}']`);
if (!link) {
link = document.createElement('link');
link.rel = rel;
document.head.appendChild(link);
}
link.href = href;
}
// 1. INYECCIÓN SÚPER RÁPIDA (Para engañar a los iPhone 🍏 y pintar ya la pestaña del navegador)
// Miramos si ya tenemos el logo guardado en la memoria del móvil // Miramos si ya tenemos el logo guardado en la memoria del móvil
const savedLogo = localStorage.getItem("company_logo"); const savedLogo = localStorage.getItem("company_logo");
if (savedLogo) { if (savedLogo) {
let appleIcon = document.querySelector("link[rel='apple-touch-icon']"); setIconLink('apple-touch-icon', savedLogo);
if (!appleIcon) { setIconLink('icon', savedLogo);
appleIcon = document.createElement('link');
appleIcon.rel = 'apple-touch-icon';
document.head.appendChild(appleIcon);
}
appleIcon.href = savedLogo;
} }
// 2. DESCARGA DESDE EL SERVIDOR Y CABECERA // 2. DESCARGA DESDE EL SERVIDOR Y CABECERA
@@ -54,14 +60,10 @@ setTimeout(async () => {
headerIcon.appendChild(img); headerIcon.appendChild(img);
} }
// Inyectamos el icono por si es la primera vez que entra // Icono de la pestaña del navegador / favicon
let appleIcon = document.querySelector("link[rel='apple-touch-icon']"); setIconLink('icon', logoUrl);
if (!appleIcon) { // Icono al añadir la app a la pantalla de inicio (iOS)
appleIcon = document.createElement('link'); setIconLink('apple-touch-icon', logoUrl);
appleIcon.rel = 'apple-touch-icon';
document.head.appendChild(appleIcon);
}
appleIcon.href = logoUrl;
} }
} catch (e) { } catch (e) {
console.error("No se pudo cargar la configuración visual de la empresa", e); console.error("No se pudo cargar la configuración visual de la empresa", e);