Estoy usando las funciones de cookies de w3schools en mi proyecto.
Cuando pruebo este código en Firefox, document.cookie me da ''
Cuando pruebo este código en Edge, document.cookie me da 'streak=0'
Mi pregunta es:
¿Por qué Firefox me da una cadena vacía?
Si esto es específico de Firefox, ¿cómo puedo solucionarlo?
Mi solución sería usar localStorage.
Nota: Snippet no funciona porque en stackoverflow porque "La operación no es segura"
function setCookie(cname,cvalue,exdays) { const d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); let expires = "expires=" + d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } function getCookie(cname) { let name = cname + "="; let decodedCookie = decodeURIComponent(document.cookie); let ca = decodedCookie.split(';'); for(let i = 0; i < ca.length; i++) { let c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } function checkCookie() { let user = getCookie("streak"); if (user != "") { //document.getElementById('streak').innerHTML = `Your streak: ${user}🔥`; console.log(user); } else { setCookie('streak', '0', 1) //document.getElementById('streak').innerHTML = `Your streak: 0🔥`; console.log(user); } } checkCookie('streak')El problema era que tenía una protección estricta en mi Firefox que bloqueaba las cookies.
Lo apagué y funcionó.