我需要从浏览器中获取所有的cookies

我需要使用JavaScript获取存储在浏览器中的所有Cookie。 如何做呢?

您只能访问特定网站的Cookie。 使用document.cookie你将得到一个由分号分隔的转义键=值对列表。

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

为了简化访问,您必须parsingstring和unescape所有条目:

 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]] = unescape(pair[1]); } return cookies; } 

所以你可能会写:

 var myCookies = getCookies(); alert(myCookies.secret); // "do not tell you" 

你不能。 按照devise,为了安全起见,您只能访问您的网站设置的Cookie。 StackOverflow无法查看UserVoice设置的Cookie,也不能看到Amazon设置的cookie。

  1. 您无法查看其他网站的Cookie。
  2. 你看不到只有http的cookie。
  3. 您可以看到的所有cookie都位于document.cookie属性中,该属性包含以分号分隔的名称=值对列表。

要检索浏览器中打开的当前文档的所有Cookie,请再次使用document.cookie属性。

由于标题没有说明它必须是程序化的,所以我认为这是一个真正的debugging/隐私pipe理问题,并且解决scheme是依赖于浏览器的,并且需要具有内置详细的cookiepipe理收费和/或debugging模块的浏览器,或者一个插件/扩展。 我打算列出一个,并要求其他人写在他们详细了解的浏览器,请准确的版本。

铬,铁制(SRWare铁4.0.280)

扳手(工具)菜单:选项/在胡德/ [显示cookies和网站的权限]对于相关的域名/网站在search框中键入后缀(如.foo.tv)。 警告:当你有一个节点(网站或cookie)点击高亮仅使用[删除]杀死特定的子树。 使用[全部删除]仍然会删除search选定的所有网站的Cookie,并浪费您的debugging会话。

达斯汀·迪亚兹(Dustin Diaz)写道:

http://www.dustindiaz.com/top-ten-javascript

 function getCookie( name ) { var start = document.cookie.indexOf( name + "=" ); var len = start + name.length + 1; if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) { return null; } if ( start == -1 ) return null; var end = document.cookie.indexOf( ';', len ); if ( end == -1 ) end = document.cookie.length; return unescape( document.cookie.substring( len, end ) ); }