Necesito almacenar todas las cookies en mi navegador usando JavaScript. ¿Cómo puede hacerse esto?
Necesito almacenar todas las cookies en mi navegador usando JavaScript. ¿Cómo puede hacerse esto?
Respuestas:
Solo puede acceder a las cookies de un sitio específico. Al usar document.cookie
obtendrá una lista de pares clave = valor de escape separados por un punto y coma.
secret=do%20not%20tell%you;last_visit=1225445171794
Para simplificar el acceso, debe analizar la cadena y eliminar todas las entradas:
var getCookies = function(){
var pairs = document.cookie.split(";");
var cookies = {};
for (var i=0; i<pairs.length; i++){
var pair = pairs[i].split("=");
cookies[(pair[0]+'').trim()] = unescape(pair.slice(1).join('='));
}
return cookies;
}
Entonces podrías escribir más tarde:
var myCookies = getCookies();
alert(myCookies.secret); // "do not tell you"
HttpOnly
cookies.document.cookie
propiedad, que contiene una lista de pares separados por punto y comaname=value
.No puedes. Por diseño, por motivos de seguridad, puede acceder solo a las cookies establecidas por su sitio. StackOverflow no puede ver las cookies establecidas por UserVoice ni las configuradas por Amazon.
Para recuperar todas las cookies del documento actual abierto en el navegador, vuelve a utilizar la document.cookie
propiedad.
Enfoque moderno.
let c = document.cookie.split(";").reduce( (ac, cv, i) => Object.assign(ac, {[cv.split('=')[0]]: cv.split('=')[1]}), {});
console.log(c);
;)
Dado que el título no especificaba que tenía que ser programático, asumiré que fue un problema genuino de depuración / gestión de privacidad y la solución depende del navegador y requiere un navegador con un peaje de gestión de cookies detallado incorporado y / o un módulo de depuración o un complemento / extensión. Voy a enumerar uno y pedirle a otras personas que escriban en los navegadores que conocen en detalle y que sean precisos con las versiones.
Cromo, construcción de hierro (SRWare Iron 4.0.280)
El menú de llave inglesa (herramienta): Opciones / Avanzado / [Mostrar cookies y permisos de sitios web] Para dominios / sitios relacionados, escriba el sufijo en el cuadro de búsqueda (como .foo.tv). Advertencia: cuando tenga un nodo (sitio o cookie), haga clic en resaltado, solo use [Eliminar] para eliminar subárboles específicos. El uso de [Eliminar todo] eliminará las cookies de todos los sitios seleccionados mediante la búsqueda y desperdiciará su sesión de depuración.
Se agregó trim () a la clave en el objeto y asígnele el nombre str, para que quede más claro que estamos tratando con una cadena aquí.
export const getAllCookies = () => document.cookie.split(';').reduce((ac, str) => Object.assign(ac, {[str.split('=')[0].trim()]: str.split('=')[1]}), {});
Si desarrolla extensiones de navegador , puede probar browser.cookies.getAll ()
Lo que estás pidiendo es posible; pero eso solo funcionará en un navegador específico. Tienes que desarrollar una aplicación de extensión del navegador para lograr esto. Puede leer más sobre la API de Chrome para comprender mejor. https://developer.chrome.com/extensions/cookies