¿Cómo puedo agregar una cookie que caduca en 2 meses a 'test@gmail.com' desde el siguiente código?
<div id="home"> <div class="name" my-data="123">Email: test@gmail.com</div> </div>Creo que el código para el tiempo real debería ser el siguiente, pero no sé cómo agregarle el valor:
function myemail () { var expiryDate = new Date(); expiryDate.setMonth(expiryDate.getMonth() + 2); document.cookie = cookieName + '=y; expires=' + expiryDate.toGMTStringSuponiendo que tiene privilegios para agregar una ID a su div, el siguiente código funciona bien
<body> <div id="home"> <div class="name" my-data="123" id="email-div">Email: test@gmail.com</div> <button onclick="myemail()">Set it</button> </div> <script> function myemail() { var expiryDate = new Date(); var email = document.getElementById("email-div").textContent.split("Email:")[1] expiryDate.setMonth(expiryDate.getMonth() + 2); document.cookie = 'emailCookie=' + email + ';expires=' + expiryDate.toGMTString() + ';path=/'; } </script> </bodyBueno, he usado un botón para activar la acción. Puedes hacer lo mismo en cualquier evento.
toGMTString es una función, debe llamar. Reemplazar fecha de caducidad.toGMTString por fecha de caducidad.toGMTString()
const Cookie = { get: function (name) { const nameEq = name + "="; const ca = document.cookie.split(';'); for (let i = 0; i < ca.length; i++) { let c = ca[i]; while (c.charAt(0) == ' ') { c = c.substring(1, c.length); } if (c.indexOf(nameEq) == 0) { return c.substring(nameEq.length, c.length); } } return null; }, set: function (name, value, hours) { const expires = ""; if (hours) { let date = new Date(); date.setTime(date.getTime() + (hours * 60 * 60 * 1000)); const expires = "; expires=" + date.toGMTString(); } document.cookie = name + "=" + value + expires + "; path=/"; } }; Puede cambiar hours a lo que sea y, por supuesto, este date.setTime(date.getTime() + (hours * 60 * 60 * 1000)); a la fórmula correspondiente
Uso`
Conjunto: Cookie.set('myemail', 'test@gmail.com', 1460) // 1460 is 2 months in hours
Obtener: Cookie.get('myemail')
const email = document.getElementsByClassName('name')[0].textContent.split(' ')[1]; Cookie.set('myemail', email, 1460);