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

122
Visualizações
La función de JavaScript detecta el conjunto de cookies durante la sesión, pero no una cookie preexistente al comienzo de una nueva sesión

La llamada a la función cookieExists('stylesheet') debería detectar la presencia de una cookie, devolviendo verdadero si la cookie llamada 'stylesheet' está presente y falso si no.

 function cookieExists(name) { var ckArr = document.cookie.split(';'); for(i = 0; i < ckArr.length; i++) if (ckArr[i].split('=')[0].trim() == name) return true; else return false; }

Esta función está diseñada para verificar los nombres de todas las cookies existentes, pero la estoy usando en una página que solo tendrá una cookie, y su nombre es 'hoja de estilo'. Lo llamo en la carga de la página para verificar si existe la cookie llamada 'hoja de estilo'. Esta cookie especifica el último archivo CSS utilizado (los usuarios pueden elegir cualquier hoja de estilo): ya sea stylesheet1.css o stylesheet2.css. Si existe la cookie llamada 'hoja de estilo', quiero usar la hoja de estilo especificada en la cookie para mostrar la página.

Ahora, si en realidad no existe una cookie llamada 'hoja de estilo', cookieExists('stylesheet') devuelve falso. Si luego agrego una cookie llamada 'hoja de estilo' a la página, cookieExists('stylesheet') devuelve verdadero. Hasta aquí todo bien.

Sin embargo, si luego cierro la pestaña del navegador, mientras que la cookie llamada 'hoja de estilo' está adjunta a la página, y luego abro la misma página en una nueva pestaña, cookieExists('stylesheet') ya no detecta la cookie y devuelve falso! La cookie todavía está adjunta a la página; no ha caducado al final de la sesión anterior.

Para ser claros, estoy llamando a cookieExists('stylesheet') en la carga de la página con window.onload = findStylesheet; , donde la función findStylesheet() llama a cookieExists('stylesheet') :

 function findStylesheet() { let savedStylesheet = cookieExists('stylesheet'); if (savedStylesheet) { let setStylesheet = Cookies.get('stylesheet'); let newStylesheet = document.getElementById("stylesheet"); newStylesheet.setAttribute('href', setStylesheet); } }

La función Cookies.get('stylesheet') es una función js-cookie .

Estaría muy agradecido si alguien pudiera señalar dónde me estoy equivocando.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

SOLUCIONADO - Estuve trabajando sin conexión. Cuando puse las páginas en cuestión en línea, todo funcionó. Así que aprendí algo allí.

Lo que es interesante para mí es que las cookies 'funcionaron' sin conexión con Firefox. Podría configurar, actualizar y leer cookies. Simplemente no pude leer una cookie que existía de una sesión anterior al comienzo de una nueva sesión. Sin embargo, con Chrome, nada funcionó.

Gracias a Alias C por sus ideas.

about 4 years ago · Juan Pablo Isaza Relatório

0

¿Intentó agregar un atributo de caducidad a su Cookies.set() ? Después de probar con su código, creo que puede ser un problema, el otro es que su función cookieExists no funcionó para una cookie que fue encontrada por mi otro código, por lo que puede ser otro problema. Cambié la función findStylesheet a esto:

 function findStylesheet() { let savedStylesheet = Cookies.get('stylesheet'); if (savedStylesheet) { let newStylesheet = document.getElementById("stylesheet"); newStylesheet.setAttribute('href', setStylesheet); return true; } return false; }

También utilicé un método de prueba para verificar la cookie: Cookies.set('stylesheet', 'path-to-stylesheet',{ expires: 365 }); (Tenga en cuenta que expira entre paréntesis). Este código funcionó para mí y cuando cerré y abrí el navegador, la cookie todavía estaba allí, sin embargo, la cookie no se encuentra si omito la fecha de caducidad.

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