Я использую функцию abs, очень полезную для циклов
x = 1
for y in range(0, 3):
x = abs(x - 1)
x будет 0.
Чтобы удалить файл cookie, установите дату expires
на что-то в прошлом. Функция, которая делает это, будет.
var delete_cookie = function(name) {
document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
};
Затем для удаления cookie с именем roundcube_sessauth
просто выполните.
delete_cookie('roundcube_sessauth');
Вы должны определить путь, по которому существует файл cookie, чтобы убедиться, что вы удалили реальный
function set_cookie(name, value) {
document.cookie = name +'='+ value +'; Path=/;';
}
function delete_cookie(name) {
document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
Если вы не указали путь, браузер устанавливает cookie относительно текущей страницы, поэтому если вы удаляете cookie на другой странице, другой файл cookie продолжает свое существование.
Редактировать на основе комментария @Evan Morrison. Имейте в виду, что в некоторых случаях для определения правильного файла cookie, Domain
параметр также необходим. Обычно используемый как Domain=.yourdomain.com
Период перед именем домена означает, что этот файл cookie может существовать в любом поддомене (www
также считается поддоменом).
Также, как упоминалось в ответе @ RobertT, cookie HttpOnly
не может быть удален с помощью JavaScript на стороне клиента.
// если прошло exMins = 0, он будет удален, как только он его создаст.
function setCookie(cname, cvalue, exMins) {
var d = new Date();
d.setTime(d.getTime() + (exMins*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
setCookie('cookieNameToDelete','',0) // this will delete the cookie.
Я не уверен, что это была ситуация с версией Roundcube с мая '12, но для текущего ответ заключается в том, что вы не можете удалить файл cookie roundcube_sessauth
из JavaScript, поскольку он помечен как HttpOnly
, И это означает, что он недоступен из кода на стороне клиента JS и может быть удален только с помощью скрипта на стороне сервера или путем прямого действия пользователя (через некоторые механизмы браузера, такие как встроенный отладчик или какой-либо плагин).