如何使用Javascript列出当前页面的所有Cookie?

有什么办法,在Javascript的帮助下,列出所有与当前页面相关的cookies? 也就是说,如果我不知道cookie的名字,但是想要检索它们包含的所有信息。

您可以列出当前网域的Cookie:

 function listCookies() { var theCookies = document.cookie.split(';'); var aString = ''; for (var i = 1 ; i <= theCookies.length; i++) { aString += i + ' ' + theCookies[i-1] + "\n"; } return aString; } 

但出于安全原因,您不能为其他域名列出Cookie

 var x = document.cookie; window.alert(x); 

这将显示当前网站有权访问的每个Cookie。 如果你例如创build了两个cookie“username = Frankenstein”和“username = Dracula”,这两行代码将显示“username = Frankenstein; username = Dracula”。 但是,到期date等信息不会显示。

(对于域名,不是tur1ng指出的页面)

http://snipplr.com/view/15641/list-cookies-in-javascript/

没有没有。 您只能阅读与当前域相关的信息。

没有。

唯一的API浏览器可以让你处理cookies,并通过键值对来设置它们。 所有的浏览器只能通过域名来处理cookies。

访问当前域的所有cookie是通过document.cookie完成的。

这个函数将把所有的cookie作为一个嵌套的对象返回:

 getDocumentCookies = function() { var theCookies = document.cookie.split(';'), cookieObj = {}, tmp, tmpName, tmpVal; for (var i = 1 ; i <= theCookies.length; i++) { tmp = theCookies[i-1].split('='); if ( tmp[0] !== undefined && tmp[1] !== undefined ) { tmpName = decodeURIComponent(tmp[0].trim()); tmpVal = decodeURIComponent(tmp[1].trim()); if ( tmpName.indexOf('[') > -1 && tmpName.indexOf(']') > -1 ) { cookieObj[tmpName.split('[')[0]] = cookieObj[tmpName.split('[')[0]] || {}; cookieObj[tmpName.split('[')[0]][tmpName.split('[')[1].replace(']', '')] = tmpVal; } else { cookieObj[tmpName] = tmpVal; } } } return cookieObj; };