Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

308
Visualizações
Mi JS para detectar el modo claro/oscuro no funciona bien

Este código está destinado a detectar si un usuario tiene un tema de color elegido previamente, y si no, debe verificar si tiene habilitado el modo oscuro y configurar el tema correspondiente; de lo contrario, simplemente configure el tema en modo claro. Sin embargo, cuando cargo la página en modo de incógnito (por lo que no hay datos de localStorage ), no se carga el tema de color. Y cuando voy a una página con un código diferente (código con la parte localStorage pero sin matchMedia ), elijo un tema de color y vuelvo a esta página, ese tema de color tampoco aparece. Creo que puede haber un error de sintaxis simple porque el código se ve bien pero no funciona por alguna razón.

 function setTheme(themeName) { localStorage.setItem('theme', themeName); document.documentElement.className = themeName; } (function() { if (localStorage.getItem('theme')) { setTheme(localStorage.getItem('theme')) } else { window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', event => { if (event.matches) { setTheme('theme-simple-dark') } else { setTheme('theme-simple-light') } }) } }());
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

En línea con mis comentarios, aquí está el código reelaborado. También me sequé un poco. De nuevo, no lo he probado, puede contener errores. setTheme no ha cambiado con respecto al tuyo.

 function setThemeBool(dark) { if (dark) { setTheme('theme-simple-dark'); } else { setTheme('theme-simple-light'); } } (function() { const storedTheme = localStorage.getItem('theme'); const themeQuery = window.matchMedia('(prefers-color-scheme: dark)'); // is anything stored from before? if (storedTheme) { // yes, use that setTheme(storedTheme); } else { // no, ask the browser setThemeBool(themeQuery.matches); } // regardless, from now on, if the theme changes, switch accordingly themeQuery.addEventListener('change', event => { setThemeBool(event.matches); }); }());
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda