たぼさんの部屋

いちょぼとのんびり

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;
};