Ich muss alle Cookies mithilfe von JavaScript in meinem Browser speichern. Wie geht das?
Ich muss alle Cookies mithilfe von JavaScript in meinem Browser speichern. Wie geht das?
Antworten:
Sie können nur auf Cookies für eine bestimmte Site zugreifen. Mit document.cookie
wird eine Liste von durch ein Semikolon getrennten Escape-Schlüssel-Wert-Paaren angezeigt.
secret=do%20not%20tell%you;last_visit=1225445171794
Um den Zugriff zu vereinfachen, müssen Sie die Zeichenfolge analysieren und alle Einträge entfernen:
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;
}
So könnten Sie später schreiben:
var myCookies = getCookies();
alert(myCookies.secret); // "do not tell you"
HttpOnly
Cookies sehen.document.cookie
Eigenschaft, die eine durch Semikolons getrennte Liste von name=value
Paaren enthält.Du kannst nicht. Aus Sicherheitsgründen können Sie nur auf die von Ihrer Website gesetzten Cookies zugreifen. StackOverflow kann weder die von UserVoice gesetzten noch die von Amazon gesetzten Cookies sehen.
Um alle Cookies für das aktuell im Browser geöffnete Dokument abzurufen, verwenden Sie die document.cookie
Eigenschaft erneut.
Moderner Ansatz.
let c = document.cookie.split(";").reduce( (ac, cv, i) => Object.assign(ac, {[cv.split('=')[0]]: cv.split('=')[1]}), {});
console.log(c);
;)
Da im Titel nicht angegeben wurde, dass es programmgesteuert sein muss, gehe ich davon aus, dass es sich um ein echtes Debugging- / Datenschutzmanagementproblem handelt und die Lösung browserabhängig ist und einen Browser mit integrierter detaillierter Cookie-Verwaltungsgebühr und / oder einem Debugging-Modul oder benötigt ein Plug-In / eine Erweiterung. Ich werde einen auflisten und andere Leute bitten, sich in Browsern zu melden, die sie im Detail kennen, und bitte seien Sie präzise mit den Versionen.
Chrom, Eisen (SRWare Iron 4.0.280)
Das Menü des Schraubenschlüssels (Werkzeug): Optionen / Unter der Haube / [Cookies und Website-Berechtigungen anzeigen] Geben Sie für verwandte Domains / Websites das Suffix in das Suchfeld ein (z. B. .foo.tv). Vorsichtsmaßnahme: Wenn ein Knoten (Site oder Cookie) durch Klicken hervorgehoben ist, verwenden Sie nur [Entfernen], um bestimmte Teilbäume zu beenden. Wenn Sie [Alle entfernen] verwenden, werden weiterhin Cookies für alle durch Suchen ausgewählten Websites gelöscht und Ihre Debugging-Sitzung verschwendet.
Trim () zum Schlüssel im Objekt hinzugefügt und benenne es str, damit klarer wird, dass es sich hier um string handelt.
export const getAllCookies = () => document.cookie.split(';').reduce((ac, str) => Object.assign(ac, {[str.split('=')[0].trim()]: str.split('=')[1]}), {});
Wenn Sie Browsererweiterungen entwickeln, können Sie browser.cookies.getAll () ausprobieren.
Was Sie fragen, ist möglich; Das funktioniert aber nur in einem bestimmten Browser. Sie müssen eine Browser-Erweiterungs-App entwickeln, um dies zu erreichen. Sie können mehr über Chrome API lesen, um es besser zu verstehen. https://developer.chrome.com/extensions/cookies