У меня есть следующий код для установки, получения и удаления файлов cookie:
function set_cookie( name, value, expires, path, domain, secure ) {
var today = new Date();
today.setTime( today.getTime() );
if ( expires ) {
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );
document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
( ( path ) ? ";path=" + path : "" ) +
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}
function get_cookie( name ) {
var start = document.cookie.indexOf( name + "=" );
var len = start + name.length + 1;
if ( ( !start ) &&
( name != document.cookie.substring( 0, name.length ) ) ) {
return null;
}
if ( start == -1 ) return null;
var end = document.cookie.indexOf( ";", len );
if ( end == -1 ) end = document.cookie.length;
return unescape( document.cookie.substring( len, end ) );
}
function delete_cookie(name) {
document.cookie = name + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
}
В моей программе есть что-то, называемое активным сообщением, и я использую cookie-файл, чтобы запомнить путь и существование активного сообщения. Естественно, у меня есть функция удаления сообщения, которая удаляет cookie. Это выглядит так:
function discard_message() {
alert('cookie = '+get_cookie('active_message'));
clear_active_message_cookie();
alert('should be null = '+get_cookie('active_message'));
update_message('Discard', false, false);
}
function clear_active_message_cookie(){
delete_cookie("active_message");
}
Как вы можете видеть, я поставил оповещения, чтобы проверить, является ли cookie читаемым после его удаления. Странно то, что в одной части моего приложения cookie успешно удаляется, но отбрасывание сообщения в другой части моего приложения не работает. Второе предупреждение о cookie-файле печатает значение cookie-файла. Я подтвердил, что имя файла cookie совпадает.
Как будто мой запрос на удаление cookie отклоняется. Кто-нибудь знает, при каких обстоятельствах это возможно?
Спасибо!