Просто укажите тот же путь к файлу cookie, который вы хотите удалить, и срок его действия истек.
document.cookie = 'name=value1; path=/';
document.cookie = 'name=value2; path=/path/';
alert(document.cookie); // name=value1; name=value2
document.cookie = 'name=; path=/path/; expires=' + new Date(0).toUTCString();
alert(document.cookie); // name=value1
Изменение его на срок действия файла cookie с путем /
все еще приведет к истечению срока действия только одного из файлов cookie - указанный путь должен соответствовать указанному пути:
document.cookie = 'name=; path=/; expires=' + new Date(0).toUTCString();
alert(document.cookie); // name=value2
Чтобы удалить оба, вы должны истечь каждый с их путем:
document.cookie = 'name=; path=/; expires=' + new Date(0).toUTCString();
document.cookie = 'name=; path=/path/; expires=' + new Date(0).toUTCString();
alert(document.cookie); // {blank}
Теперь в этих примерах предполагается, что вы просматриваете /path/
или его подкаталог.
[править]
Чтобы удалить навалом, попробуйте что-то вроде этого:
function expireAllCookies(name, paths) {
var expires = new Date(0).toUTCString();
// expire null-path cookies as well
document.cookie = name + '=; expires=' + expires;
for (var i = 0, l = paths.length; i < l; i++) {
document.cookie = name + '=; path=' + paths[i] + '; expires=' + expires;
}
}
expireAllCookies('name', ['/', '/path/']);
Демо: http://jsfiddle.net/M2dZ3/
Вы также можете подделать поиск пути, разделив и повторив window.location.pathname
:
function expireActiveCookies(name) {
var pathname = location.pathname.replace(/\/$/, ''),
segments = pathname.split('/'),
paths = [];
for (var i = 0, l = segments.length, path; i < l; i++) {
path = segments.slice(0, i + 1).join('/');
paths.push(path); // as file
paths.push(path + '/'); // as directory
}
expireAllCookies(name, paths);
}
Демо: http://jsfiddle.net/M2dZ3/2/