cookieの読み書き(javascript)
- Cookie とは、以下のようなことを実現するための機構です。
訪問者がそのページに何回訪れたか記録して表示する。
通常モード、フレームモードなど、訪問者の好みを記録しておき、次回訪問時にその好みのモードで表示する。
掲示板やチャットで入力したユーザー名を記録しておき、次回訪問時にユーザー名の入力を省略する。
ログインによるセッションを確立する。
上記のようなデータは CGI などを用いてサーバー側に記録することもできますが、Cookie を用いることにより、クライアント側(ブラウザを起動する側)のハードディスク内に Cookie情報 と呼ばれるデータを記録することができるようになります。
- Cookie情報が保存されるファイルは OS やブラウザのバージョンによって異なりますが、例えば以下のようなフォルダやファイルに記録されます。
C:\Document and Settings\ユーザ名\Cookies
C:\Program Files\Netscape\Users\UserName\cookies.txt
C:\Program Files\Netscape\Navigator\cookies.txt
C:\Windows\Cookies\~.txt
- 最も簡単な書き込みの例は次のようになります。
これは、ブラウザが終了するまで有効で、設定したページと同じフォルダにある(もしくは下位層にある)ページに送信されます。
setCookie = function() { var key, data; key = "hoge"; data = "hogehoge"; document.cookie = key + '=' + encodeURIComponent(data); };
- 読み出しは
getCookie = function(key){ var result, cookieName, allcookies, position, startIndex, endIndex; result = null; cookieName = key + '='; allcookies = document.cookie; position = allcookies.indexOf(cookieName); if (position !== -1) { startIndex = position + cookieName.length; endIndex = allcookies.indexOf(';', startIndex); if (endIndex === -1) { endIndex = allcookies.length; } result = decodeURIComponent(allcookies.substring(startIndex, endIndex)); } alert(result); return result; };