(редактировать: сначала опубликована неверная версия .. и при этом нефункциональная. Обновлена до текущей, которая использует непарамальную функцию, очень похожую на второй пример)
Хорошая идея в первом примере cwolves. Я использовал обе функции для довольно компактной функции чтения / записи cookie, которая работает в нескольких поддоменах. Подумал, что поделюсь, если кто-нибудь еще наткнется на эту тему в поисках этого.
(function(s){
s.strToObj = function (x,splitter) {
for ( var y = {},p,a = x.split (splitter),L = a.length;L;) {
p = a[ --L].split ('=');
y[p[0]] = p[1]
}
return y
};
s.rwCookie = function (n,v,e) {
var d=document,
c= s.cookies||s.strToObj(d.cookie,'; '),
h=location.hostname,
domain;
if(v){
domain = h.slice(h.lastIndexOf('.',(h.lastIndexOf('.')-1))+1);
d.cookie = n + '=' + (c[n]=v) + (e ? '; expires=' + e : '') + '; domain=.' + domain + '; path=/'
}
return c[n]||c
};
})(some_global_namespace)
- Если вы ничего не передадите rwCookie, он получит
все файлы cookie в хранилище файлов cookie
- Передал rwCookie имя куки, он получает это
значение cookie из хранилища
- Передал значение cookie, он записывает cookie и помещает значение в хранилище
- По умолчанию срок действия сессии, если вы не укажете один