Удаление куки конкретного сайта ява скриптом

Писал как то скрипт с макросом и нужно было чистить куки на одном только сайте, но приходилось пользоваться командой аймакроса CLEAR, которая сносит все куки и после этого приходится заново залогиневаться на других сайтах и вспоминать пароли. Теперь решил воспользоваться средствами ява скрипт. Оказывается, если изменить время жизни куки, например поставить на 1 минуту меньше от текущего времени, то куки автоматически удаляется. То есть если время ее истекло, то она удаляется. Вот на этом и можно сыграть в удаление куки конкретного сайта. Нашел в интернете написанную функцию, которая это проделывает по имени куки.


function delete_cookie ( cookie_name )
{
  var cookie_date = new Date ( );  // Текущая дата и время
  cookie_date.setTime ( cookie_date.getTime() - 1 );
  document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}
Ну и еще функция для установки кук тоже пригодится.
Будет легче устанавливать куки с помощью функции.

function set_cookie ( name, value, exp_y, exp_m, exp_d, path, domain, secure )
{
  var cookie_string = name + "=" + escape ( value );
 
  if ( exp_y )
  {
    var expires = new Date ( exp_y, exp_m, exp_d );
    cookie_string += "; expires=" + expires.toGMTString();
  }
 
  if ( path )
        cookie_string += "; path=" + escape ( path );
 
  if ( domain )
        cookie_string += "; domain=" + escape ( domain );
  
  if ( secure )
        cookie_string += "; secure";
  
  document.cookie = cookie_string;
}

Например, установка куки без срока хранения:
set_cookie ( "username", "Вася Пупкин" );

Установка куки со сроком хранения, доменом ruseller.com, использованием SSL, но без пути:
set_cookie ("username", "Вася Пупкин", 2003, 01, 15, "", "ruseller.com", "secure");

Функция получения куки


function get_cookie ( cookie_name )
{
var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
 
 if ( results )
    return ( unescape ( results[2] ) );
  else
    return null;
}

Перекодирование значения куки!

Следует перекодировать значение куки для корректного хранения и отображения таких символов как пробел и двоеточие. Такая операция гарантирует, что браузер корректно воспримет значение. Перекодирование лекго выполняется функцией JavaScript escape(). Например:
document.cookie = "username=" + escape("Вася Пупкин") + "; expires=15/02/2003 00:00:00";
 Источник ruseller.com

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

Отправить комментарий