El código parece estar bien estructurado y los nombres de las claves de localStorage son únicos para cada botón, lo cual está bien. Sin embargo, para el botón «CANALES», no veo la comprobación del estado de localStorage cuando se carga la página, como se hace con el botón «ACTIVAR EL CINE». Debes asegurarte de que también estás comprobando y aplicando el estado guardado cuando la página se carga para el botón «CANALES».
El siguiente paso sería revisar la función loadChannels
, que parece estar relacionada con la carga inicial de los canales y el estado del botón. Es importante verificar si en algún lugar de esa función o en el evento storage
se está sobrescribiendo el valor de 'buttonHidden'
en localStorage. Esto podría causar que el botón no conserve el estado esperado.
Si encuentras que el valor se sobrescribe en alguna parte del código, deberás corregir eso. Si ese no es el caso, y el problema persiste, una opción sería depurar tu código JavaScript utilizando console.log
para rastrear los valores de localStorage y ver exactamente en qué punto el valor no se conserva como se esperaba.
Finalmente, asegúrate de que no haya conflictos con otras partes del código que también podrían estar utilizando la clave 'buttonHidden'
en localStorage, y que la lógica de inicialización y de eventos esté estructurada de manera que se ejecute en el orden correcto.
Voy a verificar el código JavaScript dentro de tu HTML para asegurarme de que los botones «CANALES» y «ACTIVAR EL CINE» estén manejando y guardando correctamente su estado en el localStorage. Deberíamos tener un enfoque consistente para ambos botones. Si uno funciona correctamente y el otro no, probablemente sea un problema con la manera en que se maneja el estado del botón «CANALES».
Primero, revisemos la lógica que maneja el botón «CANALES». Por lo que puedo ver, tienes un evento click
asociado con este botón:
javascript
document.getElementById('loadChannelsBtn').addEventListener('click', function() {
const iptvUrl = "https://iptv-org.github.io/iptv/index.m3u";
addIPTV(iptvUrl); // Asumiendo que 'addIPTV' puede tomar un parámetro directamente
this.style.display = 'none'; // Oculta el botón después de hacer clic en él
localStorage.setItem('buttonHidden', 'true'); // Guarda el estado del botón como oculto en localStorage
});
Y también revisemos la lógica que verifica el estado al cargar la página:
javascript
document.addEventListener('DOMContentLoaded', function() {
// Cargar canales inicialmente y establecer visibilidad del botón basada en localStorage
loadChannels();
initializeButtonVisibility();
addEventListeners();
// Comprobar si el botón debe estar oculto al cargar la página
var loadChannelsBtn = document.getElementById('loadChannelsBtn');
if (localStorage.getItem('buttonHidden') === 'true') {
loadChannelsBtn.style.display = 'none';
}
// Resto del código...
});
En este punto, lo que noto es que el botón de «CANALES» está utilizando la clave 'buttonHidden'
para guardar su estado en el localStorage. Necesitamos asegurarnos de que no haya otra lógica que también esté utilizando la misma clave y sobrescribiendo este valor. Además, para cada botón debemos utilizar una clave única en el localStorage para evitar cualquier conflicto.
Para el botón «ACTIVAR EL CINE», deberías tener un enfoque similar en el JavaScript, pero con una clave diferente, como 'imageButtonHidden'
. Asegúrate de que en el código que maneja el evento click
para este botón estés utilizando la clave correcta y única para su estado.
Si aún no funciona después de verificar estas claves y su lógica, podría haber otro problema subyacente. Podrías compartir más detalles o el segmento de código relevante para el botón «ACTIVAR EL CINE» si este es diferente del código del botón «CANALES», para que pueda ayudarte mejor.