Некоторые файлы cookie, такие как URL-адреса реферера, содержат =
.В результате простое разбиение на =
приведет к неправильным результатам, а предыдущие ответы здесь будут разбиты по времени (или сразу, в зависимости от вашей глубины использования).
Это займет только первый случай равенствазнак.Возвращает объект с парами ключ-значение 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;
}