Exactamente, ¿cuáles son las restricciones para manejar las cookies del navegador desde javascript? ¿Puedo verificar si las cookies están habilitadas, por ejemplo?¿Puedo modificar o agregar cookies desde JavaScript?
Respuesta
se escribe una galleta y tratar de leer de nuevo: de esta manera, usted sabrá si están activadas las cookies.
Sí! Read this excellent article about using cookies with JavaScript
He aquí un ejemplo de código extractada.
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var 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;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
Y en cuanto a las pruebas si están habilitadas. Me gusta la respuesta de jldupont.
puede utilizar navigator.cookieEnabled
pero no estoy seguro de si es compatible con todos los navegadores.
Para obtener más información acerca de las cookies, comprobar this
¿Puedo comprobar si las cookies están habilitadas por ejemplo?
Sí, pero no tan fácilmente como crees. navigator.cookieEnabled
es una bandera muy general que no cubre exactamente bajo qué circunstancias puede establecer una cookie.
Por ejemplo, es posible que se permitan las cookies de sesión pero que se bloqueen las persistentes. Por lo tanto, no sabrá realmente si un conjunto de cookies tendrá éxito a menos que lo pruebe e ingrese un código ficticio document.cookie
y luego lea document.cookie
para ver si fue necesario.
En muchos navegadores una cookie persistente se reducirá a una cookie de sesión cuando cookies persistentes están desactivadas. Pero no IE, que simplemente lo bloqueará. Puede tratar de detectarlo estableciendo una cookie persistente y una cookie de sesión en document.cookie
y ver cuál de ellas sobrevivirá.
El código JavaScript Cookies W3Schools tiene un error en ella. En el setCookie función de esta línea:
exdate.setDate(exdate.getDate()+expiredays);
JavaScript Object Propiedades Fecha:
getDate() - Returns the day of the month (from 1-31)
...
getTime() - Returns the number of milliseconds since midnight Jan 1, 1970
...
getDate() plus the number of days is not going to work. I think it should be something like this:
expire = expiredays * 1000 * 60 * 60 * 24; // convert to milliseconds
var exdate = new Date(today.getTime() + (expire));
Las bibliotecas de galletas en TechPatterns.com Javascript Cookie Script Get Cookie, Set Cookie, Delete Cookie Functions trabajo mejor (# 1 en los resultados de Google no siempre es la mejor).
He probado el código de dos páginas en Internet Explorer 8 y la primera causa de mi galleta tiene una fecha de expiración del 01/01/2038 1:00. El código del segundo ejemplo establece la fecha de caducidad de la cookie en exactamente 1 día desde el momento en que la probé, tal como se esperaba.
Sin embargo, estas bibliotecas parecen tener otro problema (si la cookie contiene '='): http://thinkclay.com/technology/add-edit-delete-cookies-with-javascript#comment-712789590 – despot
Hay un gran artículo sobre quirksmode sobre la manipulación de cookies a través de JavaScript: http://www.quirksmode.org/js/cookies.html
- 1. Leyendo Javascript Cookies desde un subdominio
- 2. ¿Cómo puedo iterar sobre las cookies usando jquery (o solo javascript)?
- 3. Cookies - PHP vs Javascript
- 4. Cookies de Javascript vs cookies de php
- 5. ¿Cómo agregar cookies a WebRequest?
- 6. Modificar el estilo desde GWT
- 7. No puedo leer las cookies a través de PHP o Javascript cuando estoy en un iPad
- 8. * Realmente * eliminar cookies con javascript
- 9. Jersey Client: Agregar cookies a la solicitud
- 10. Crear/modificar imágenes en JavaScript
- 11. ¿Cómo puedo insertar o modificar una revisión mercurial?
- 12. ¿Puedo agregar una propiedad dinámicamente en javascript?
- 13. ivysettings.xml: ¿Puedo "modificar" la configuración predeterminada sin modificar el contenedor o reemplazarlo por completo?
- 14. ¿Puedo marcar un campo inválido desde javascript?
- 15. VideoView con cookies (o encabezados)
- 16. ¿Llamar a VBScript desde JavaScript o viceversa?
- 17. Modificar contactos de Microsoft Outlook desde Python
- 18. Django Cookies, ¿cómo puedo configurarlas?
- 19. ¿Puedo modificar theme_menu_link para un menú específico?
- 20. ¿Puedo cargar javascript desde un archivo php?
- 21. ¿Cómo puedo actualizar un UpdatePanel desde JavaScript?
- 22. Modificar una variable de JavaScript con Selenium
- 23. crear y modificar el archivo xml usando javascript
- 24. ¿Agregar un botón de JavaScript usando Greasemonkey o Tampermonkey?
- 25. ¿Cómo puedo probar programáticamente las cookies?
- 26. Firefox: ¿Cómo puedo agregar/modificar barras de herramientas usando Add-on SDK (Jetpack)
- 27. Configurar cookies accesibles desde el lado del cliente en Express
- 28. Hashes o tokens para "recordarme" las cookies?
- 29. ¿Puedo modificar la sección <head/> de una Página en .NET desde un Control de usuario sin runat = "server"?
- 30. Puedo modificar un parámetro del método pasado
Buen artículo con guiones de trabajo. – Bratch
¡Gracias! Muy buen ejemplo. –