Удалить или сбросить cookie-файлы браузера с помощью Javascript

#javascript #cookies

#javascript #файлы cookie

Вопрос:

HTML-ссылки:

<a href="javascript:del_cookie(name);">Logout</a>
<a href="javascript:delete_cookie(rememberKeepMeLoggedIn);">Logout</a>
<a href="javascript:eraseCookie(name);">Logout</a>

<a href="#" onclick="del_cookie(name);">Logout</a>
<a href="#" onclick="delete_cookie(rememberKeepMeLoggedIn);">Logout</a>
<a href="#" onclick="eraseCookie(name);">Logout</a>

Javascript:

функция delete_cookie(rememberKeepMeLoggedIn) {
переменная cookie_date = новая дата ( );
cookie_date.setTime ( cookie_date.getTime() — 1 );
document.cookie = rememberKeepMeLoggedIn = «=; expires=» cookie_date.toGMTString();
}

функция del_cookie(имя) { document.cookie = ‘acceptsCookies=; expires=Чт, 01 января 1970 00:00:00 GMT;’;
окно.местоположение = «http://www.smugmug.com/logout.mg?goTo =#«
}

функция eraseCookie(name) { var cookies = document.cookie.split(«;»);
для (var i = 0; i < cookie-файлы.длина; i )
Удаляет cookies(cookies[i].разделить(«=»)[0]);
}

Как я могу удалить или сбросить cookie-файлы с именем « UP-759283 «?
Хорошо ли выглядит приведенный ниже синтаксис?

Вот моя функция javascript:

функция del_cookie() {
document.cookie = UP-759283 ‘=; истекает =чт, 01 января-70 00:00:01 GMT;’;
}

Выноска URL-адреса HTML
<a href="javascript:del_cookie(); document.location.reload( );">Logout</a>

Ответ №1:

Хорошо ли выглядит приведенный ниже синтаксис?

Нет; просто запустите свой код через JSLint, и вы увидите. Изменить

 document.cookie = UP-759283  '=; expires=Thu, 01-Jan-70 00:00:01 GMT;'; 
  

Для

 document.cookie = 'UP-759283=; expires=Thu, 01-Jan-70 00:00:01 GMT;'; 
  

Согласно документам document.cookie MDC, cookie-файлы удаляются путем установки времени истечения срока действия равным нулю:

 document.cookie = 'UP-759283=; expires=Thu, 01 Jan 1970 00:00:00 GMT;';
  

Другая ссылка: cookies @ quirksmode
.

Комментарии:

1. бесполезная конкатенация строк бесполезна. Также что, если локальное машинное время установлено на 1965?

2. @Raynos: установите машинное время на 1965 и попробуйте сами . В Windows 7 я не могу установить системные часы раньше, чем 1 января 1980 года.

3. @MattBall Я должен узнать, как работают cookie-файлы >_>. Я предполагаю, что ваш ответ все же сработает. В любом случае, если вы установите системные часы на 1965, сломается очень много кода.

4. Пока не повезло, ребята… есть другие предложения?

5. @detonate: в чем проблема? Вы видели демо-версию? jsfiddle.net/mattball/mJLZj