Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Хранение и удаление cookie в IE (https://javascript.ru/forum/css-html-internet-explorer/18572-khranenie-i-udalenie-cookie-v-ie.html)

john-samilin 07.07.2011 10:15

Хранение и удаление cookie в IE
 
Привет,
у меня есть задача сделать механизм закладок на сайте. Для этого я с помощью js ставлю куки следующим образом:
var link = window.location.toString();
        var title = document.title;
var expires = new Date();
        expires.setTime(d.getTime()+1000*60*60*24*30*6);
        expires.toGMTString();
        var cookie = "favourite["+link+"]="+title+"; expires="+expires+"; path=/";
document.cookie = cookie;

Во всех браузерах кроме IE8 (да и вообще всех IE) работает как надо. А вот IE куку ставит, но игнорирует срок хранения и работает с ней как с сессионной.
Это был вопрос номер 1.
Вопрос номер два.
Удаление закладок реализовано так:
var link = window.location.toString();
        var title = document.title;
var expires = new Date();
        expires.setTime(d.getTime()-1000*60*60*24);
        expires.toGMTString();
        var cookie = "favourite["+link+"]="+title+"; expires="+expires+"; path=/";
document.cookie = cookie;

то есть кука ставится задним числом. IE8 эту операцию опять же игнорирует.
Может быть кто-то знает в чем дело? Это баг IE или у него есть какие-то специфические методы работы с куками?

Kolyaj 07.07.2011 10:45

Цитата:

Сообщение от john-samilin
expires.toGMTString();

Какой смысл вот в этой строчке? Результат функции ни чему не присваивается.

john-samilin 07.07.2011 10:50

блин, точно) Но тогда почему тот же Chrome абсолютно верно определяет срок жизни?

Kolyaj 07.07.2011 10:51

Сделайте alert(expires) и посмотрите, что там в качестве времени присваивается в каждом браузере.

john-samilin 07.07.2011 10:57

с toGMTString():
IE - Tue, 3 Jan 2012 06:53:04 UTC
Chrome - Tue, 3 Jan 2012 06:53:04 GMT
без toGMTString():
IE - Tue 3 Jan 06:53:04 UTC +0300 2012
Chrome - Tue 3 Jan 2012 06:53:04 GMT +0300 (Russian Standart Time)


Часовой пояс GMT +3, время: 00:43.