117

JavaScript を使用して、ブラウザーに保存されているすべてのCookieを取得する必要があります。どうすればそれができますか?

4

9 に答える 9

94

特定のサイトの Cookie のみにアクセスできます。you を使用document.cookieすると、セミコロンで区切られたエスケープされた key=value ペアのリストが取得されます。

secret=do%20not%20tell%you;last_visit=1225445171794

アクセスを簡素化するには、文字列を解析し、すべてのエントリをエスケープ解除する必要があります。

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;
}

したがって、後で次のように書くことができます。

var myCookies = getCookies();
alert(myCookies.secret); // "do not tell you"
于 2008-10-31T09:28:31.487 に答える
48
  1. 他のサイトの Cookie は表示されません。
  2. HttpOnlyCookieは表示されません。
  3. 表示できるすべての Cookie はdocument.cookieプロパティにあり、セミコロンで区切られたname=valueペアのリストが含まれています。
于 2008-10-31T06:12:39.120 に答える
34

それはいけません。設計上、セキュリティ上の理由から、サイトで設定された Cookie のみにアクセスできます。StackOverflow は、UserVoice によって設定された Cookie も、Amazon によって設定された Cookie も見ることができません。

于 2008-10-31T06:00:28.707 に答える
13

ブラウザーで開いている現在のドキュメントのすべての Cookie を取得するには、document.cookieプロパティを再度使用します。

于 2008-10-31T05:34:49.680 に答える