タグ
  ANSI (1)
  ASP.NET (10)
  Active Directory (55)
  BAT (16)
  Backup (2)
  CSharp (11)
  CentOS (4)
  C言語 (4)
  DNS (4)
  Excel (3)
  FFmpeg (1)
  Fedora (4)
  FreeBSD (6)
  IPv6 (3)
  Java (11)
  JavaScript (8)
  LAN (1)
  Link (4)
  Linux (15)
  Mac (1)
  Mail (2)
  Microsoft (3)
  NIS (1)
  Node.js (6)
  OpenIndiana (1)
  OpenLDAP (2)
  OpenSSL (1)
  OpenSolaris (4)
  PHP (2)
  Perl (2)
  Postfix (1)
  PostgreSQL (2)
  PowerShell (34)
  RFC (3)
  SQL Server (5)
  Solaris (10)
  Ubuntu (9)
  VBScript (73)
  VCpp (2)
  VMware (3)
  Visual Basic (1)
  WMI (17)
  WSF (5)
  WSH (10)
  Windows (19)
  bash (1)
  bind (1)
  iSCSI (1)
  おまけ (3)
  作成中 (8)
  慣用句 (3)
  正規表現 (6)
  運用 (8)
作成 2010.01.05
更新 2010.01.05
JavaScript で Cookie の操作
目次
Cookieの設定
書式
パラメータ
サンプル
Cookieの読み取り
書式
サンプル
Cookieの削除
説明
サンプル
Cookieの設定
書式
document.cookie = "NAME=value[; expires=GMT][; domain=domain][; path=path][; secure]";
パラメータ
パラメータ 説明
NAME 必須。ほかのパラメータとかぶらない任意の名称を使用する。設定値はエスケープする必要がある。
expires 有効期限を指定する。時刻はGMTで設定する必要がある。このパラメータが無いとブラウザを閉じた時点で消去される。
domain Cookieを読み取れるドメインを設定する。このパラメータが無いと現在のサーバーのFQDNが設定される。".example.lan" のように設定すると "example.lan" 配下のすべてのドメインでこのCookieが読み取れるようになる。シングル サイン オンで良く利用される。
path Cookieを取得できる範囲を指定する。このパラメータが無いと現在のページと同じ階層が設定される。例えば "/aaa/bbb.html" でCookieを設定した場合、"/aaa/" 内にあるページのみがCookieを取得できる。
secure https で接続したときのみ読み取り可能
サンプル
var expire_date = new Date();
// 有効期限を10日にする
expire_date.setTime(expre_date.getTime() + 10*24*60*60*1000);
var cookie_name = "key";
var cookie_value = "テスト";
// Cookie値のエスケープには escape/unescape 関数を用いるのが一般的だが、
// 日本語を正しく処理できない場合があるため encodeURIComponent/decodeURIComponent を使用する
cookie_name = encodeURIComponent( cookie_name );
cookie_value = encodeURIComponent( cookie_value );
document.cookie = cookie_name + "=" + cookie_value + "; expires=" + expire_date.toGMTString();
Cookieの読み取り
書式
string = document.cookie;
サンプル
var full_cookie_data = document.cookie;
// Cookieが複数設定されている場合、";" で区切られている
var array_cookies = full_cookie_data.split(";");
var hash_cookies = new Array();
for(var i=0; i<array_cookies.length; i++){
  array_cookies[i] = array_cookies[i].replace(/^ +| +$/,'');
  var tmp = array_cookies[i].split("=");
  hash_cookies[tmp[0]] = tmp[1];
}

// Cookieのデータをすべて取り出す。
var return_data = "";
for(var hash_key in hash_cookies){
  return_data += decodeURIComponent(hash_key) + "="
              + decodeURIComponent(hash_cookies[hash_key]) + "<br>";
}
Cookieの削除
説明

有効期限を過去に設定するか、空データを設定すればよい。

サンプル
var expire_date = new Date();
expire_date.setTime(expre_date.getTime() - 1000);
var cookie_name = "key";
document.cookie = cookie_name + "=; expires=" + expire_date.toGMTString();
タグ: JavaScript
[リロード] [記事修正] [新規作成] [使用方法]
©2004-2012 UPKEN IPv4