Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

125
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda