有没有办法在Javascript的帮助下列出与当前页面相关的所有cookie?也就是说,如果我不知道cookie的名称,但想要检索它们包含的所有信息。
答案 0 :(得分:72)
您可以列出当前域的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
答案 1 :(得分:10)
var x = document.cookie;
window.alert(x);
显示当前站点可以访问的每个cookie。例如,如果你创建了两个cookie“username = Frankenstein”和“username = Dracula”,这两行代码将显示“username = Frankenstein; username = Dracula”。但是,不会显示有效期等信息。
答案 2 :(得分:2)
(对于域名,而不是tur1ng指出的页面)
答案 3 :(得分:2)
否强>
唯一允许您处理Cookie的API浏览器是通过键值对获取和设置它们。所有浏览器仅按域名处理cookie 。
通过document.cookie
访问当前域的所有Cookie。
答案 4 :(得分:1)
不,没有。您只能读取与当前域相关的信息。
答案 5 :(得分:0)
function listCookies() {
let cookies = document.cookie.split(';')
cookies.map((cookie, n) => console.log(`${n}:`, decodeURIComponent(cookie)))
}
function findCookie(e) {
let cookies = document.cookie.split(';')
cookies.map((cookie, n) => cookie.includes(e) && console.log(decodeURIComponent(cookie), n))
}
这是专门针对您所在的窗口的。尝试使其保持简洁简洁。
答案 6 :(得分:0)
某些cookie(例如引荐来源网址)中包含=
。结果,仅在=
上分割会导致不规则的结果,并且此处的先前答案会随着时间的推移而分解(或立即取决于您的使用深度)。
这仅采用等号的第一个实例。它返回一个带有cookie的键值对的对象。
// Returns an object of key value pairs for this page's cookies
function getPageCookies(){
// cookie is a string containing a semicolon-separated list, this split puts it into an array
var cookieArr = document.cookie.split(";");
// This object will hold all of the key value pairs
var cookieObj = {};
// Iterate the array of flat cookies to get their key value pair
for(var i = 0; i < cookieArr.length; i++){
// Remove the standardized whitespace
var cookieSeg = cookieArr[i].trim();
// Index of the split between key and value
var firstEq = cookieSeg.indexOf("=");
// Assignments
var name = cookieSeg.substr(0,firstEq);
var value = cookieSeg.substr(firstEq+1);
cookieObj[name] = value;
}
return cookieObj;
}
答案 7 :(得分:0)
为了快速查看任何特定页面上的cookie,我保留了一个收藏夹栏“ Cookies”快捷方式,其URL设置为:
javascript:window.alert(document.cookie.split(';').join(';\r\n'));
答案 8 :(得分:0)
我在 https://electrictoolbox.com/javascript-get-all-cookies/ 上找到了此代码,它比其他解决方案更适合我:
function get_cookies_array() {
var cookies = { };
if (document.cookie && document.cookie != '') {
var split = document.cookie.split(';');
for (var i = 0; i < split.length; i++) {
var name_value = split[i].split("=");
name_value[0] = name_value[0].replace(/^ /, '');
cookies[decodeURIComponent(name_value[0])] = decodeURIComponent(name_value[1]);
}
}
return cookies;
}