JavaScriptを使用してブラウザに保存されているすべてのCookieを取得する必要があります。どうすればできますか?
JavaScriptを使用してブラウザに保存されているすべてのCookieを取得する必要があります。どうすればできますか?
回答:
特定のサイトのCookieにのみアクセスできます。を使用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"
document.cookies
(O'Reillyの本から)。
HttpOnly
クッキーが見えない。document.cookie
は、セミコロンで区切られたname=value
ペアのリストを含むプロパティにあります。できません。設計上、セキュリティ上の理由から、サイトで設定されたCookieのみにアクセスできます。StackOverflowは、UserVoiceによって設定されたCookieも、Amazonによって設定されたCookieも表示できません。
タイトルはプログラマティックである必要があることを指定していなかったので、それは本物のデバッグ/プライバシー管理の問題であり、解決策はブラウザーに依存し、詳細なCookie管理料金やデバッグモジュールが組み込まれたブラウザーを必要とするか、プラグイン/拡張。そのうちの1つをリストにして、他の人に詳細を知っているブラウザに書き込むように依頼します。バージョンについては正確に説明してください。
Chromium、Ironビルド(SRWare Iron 4.0.280)
レンチ(ツール)メニュー:オプション/裏側/ [CookieとWebサイトのアクセス許可を表示]関連するドメイン/サイトの場合、検索ボックスにサフィックスを入力します(.foo.tvなど)。警告:ノード(サイトまたはCookie)がある場合、クリックして強調表示するだけで[削除]を使用して特定のサブツリーを削除します。[すべて削除]を使用しても、検索で選択されたすべてのサイトのCookieが削除され、デバッグセッションが無駄になります。
ブラウザ拡張機能を開発する場合は、browser.cookies.getAll()を試すことができます
あなたが求めていることは可能です。しかし、それは特定のブラウザでのみ機能します。これを実現するには、ブラウザ拡張アプリを開発する必要があります。理解を深めるために、Chrome APIについての詳細を読むことができます。https://developer.chrome.com/extensions/cookies