Estoy creando un marcador en html que está controlado por otra página html. Trabajo con mensajes como los propuestos en la respuesta de mi publicación anterior ( mostrar texto en una ventana secundaria en javascript ). Está funcionando muy bien y puedo actualizar el texto. Ahora estoy tratando de cambiar la fuente de una imagen.
principal.js
const setFaute1 = (faute1) => { afffaute1.innerHTML = faute1; switch (faute1) { case 1: faute11.src = './images/FillFault.png'; break; case 2: faute12.src = './images/FillFault.png'; break; case 3: faute13.src = './images/FillFault.png'; break; case 0: faute11.src = './images/EmptyFault.png'; faute12.src = './images/EmptyFault.png'; faute13.src = './images/EmptyFault.png'; break; } bc.onmessage = (messageEvent) => { switch (messageEvent.data) { case 'update_mot': setMot(localStorage.getItem('mot')); break; case 'update_equipe1': setEquipe1(localStorage.getItem('equipe1')); break; case 'update_equipe2': setEquipe2(localStorage.getItem('equipe2')); break; case 'update_score1': setScore1(localStorage.getItem('score1')); break; case 'update_score2': setScore2(localStorage.getItem('score2')); break; case 'update_faute1': setFaute1(localStorage.getItem('faute1')); break; case 'update_faute2': setFaute2(localStorage.getItem('faute2')); break; default: } }; btnfaute1.onclick = (e) => { var value = parseInt(afffaute1.innerHTML, 10); if (value < 3) { value++; } else { value = 0; } localStorage.setItem('faute1', value); afffaute1.innerHTML = value; setFaute1(value); bc.postMessage('update_faute1'); }; };Se muestra correctamente en la página donde está el botón pero no en la segunda página. El campo de texto se actualiza correctamente.
no entiendo porque ¿Alguien me puede ayudar?
Código completo: https://gitlab.com/roger.julien/tableau-affichage-impro/-/tree/fautes
Encontré la solución yo mismo. El localstorage almacena la cadena. Y mi caso fue comparar enteros. Solo tuve que convertir la cadena a un número entero y funciona.