【JQuery】cookieの発行、取得、削除を行う
javascriptでcookieの発行、取得、削除は少々面倒ですが、jQueryのプラグイン「jquery.cookie」を使えば容易かつ簡単にcookie操作が可能になります。
jquery.cookieの取得と設定
jQueryのプラグイン「jquery.cookie」はこちらから取得可能です。
右サイドバーの一番下に「Download ZIP」というボタンがありますので、そこからZIPファイルをダウンロードしてください。
ダウンロードしたらそのZIPファイルにある「jquery.cookie.js」ファイルをサーバー(のルートディレクトリか任意の場所)にアップロードし、サイトのヘッダーに読み込みのためのタグを挿入してください。
<script type="text/javascript" src="http://○○○.com/jquery.cookie.js"></script>
なお、初めてjQueryを使う場合、次のようにjQuery本体も一緒に挿入してください(jQuery本体を上にする)。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script> <script src="http://○○○.com/jquery.cookie.js"></script>
jquery.cookieの操作
cookieの保存
cookieの保存は、次のようにします。
$.cookie('ここにcookieの名前', '保存したい値');
cookieの有効期限を指定
通常、cookieの有効期限はブラウザが閉じられるまでですが、次のようにすると有効期限を設定できます。
$.cookie('保存したいcookieの名前', '保存したい値', { expires: 365 });
上の例だと365日間保存でき、下のようにすると一週間(7日間)保存できます。
$.cookie('保存したいcookieの名前', '保存したい値', { expires: 7 });
また、小数で指定すると時間単位、秒単位で指定可能です。
cookieの有効範囲を指定
cookieの有効範囲も指定できます。
$.cookie('保存したいcookieの名前', '保存したい値', { expires: 1 , path: '/' });
この場合、cookieの有効範囲はドメイン全体となり、次のようにすると「test」ディレクトリ以下で有効となります。
$.cookie('保存したいcookieの名前', '保存したい値', { expires: 1 , path: '/test/' });
この場合、cookieの有効範囲はドメイン全体となり、次のようにすると「test」ディレクトリ以下で有効となります。
cookieの取得
ブラウザに保存されたcookieは、次のようにして取り出せます。
$.cookie('取得したいcookieの名前');
引数に取り出したいcookieの名前を指定すると、その値を取り出せます。
利用しているすべてのcookieを取得
利用しているすべてのcookieを取得する場合、次のようにします。
$.cookie();
戻り値は、次のようなオブジェクト(連想配列)となります。
{ "name1":"value1", "name2":"value2", ・・・ }
cookieの削除
cookieの削除を行う場合、次のようにします。
$.removeCookie('削除したいcookieの名前');
ただし、cookieの保存時に使われた属性も指定しなければなりません。
つまり、
$.cookie('保存したいcookieの名前', '保存したい値', { expires: 1 , path: '/test/' });
のように保存した場合、次のようにしなければなりません。
$.removeCookie('削除したいcookieの名前', { path: '/test/' });
json形式でcookieを操作する
json形式のデータでcookieを扱いたい場合、次の宣言文を記述する必要があります。
$.cookie.json = true;
URIエンコードとURIデコードをオフにする
デフォルトではcookieの発行と取得ではURIエンコードとURIデコードが行われますが、それらの処理をオフにする場合、次の宣言文を記述する必要があります。
$.cookie.raw = true;
その他オプション設定も可能ですので、ダウンロードページの仕様を確認すると良いと思います。
jquery.cookieを使ってcookieを操作する
「jquery.cookie」を使って、cookieの発行・取得・削除を行うサンプルを作ってみました。
デモがあるので操作できているか確認してみてください。デモはこちら。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <title>デモ</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script> <script src="jquery.cookie.js"></script> <script type="text/javascript"> <!-- $(function(){ //cookieを保存する $('#cookie_save').click(function(){ //有効期限1日、有効範囲はドメイン全体のcookie「test_cookie」を発行 $.cookie('test_cookie', 'これはテストのために発行されたcookieです。', { expires: 1, path: '/' }); }); //cookieを取得する $('#cookie_get').click(function(){ //cookie「test_cookie」を取得 var cookie_get = $.cookie('test_cookie'); //取得したcookieをid要素「cookie_output」に出力する $('#cookie_output').text(cookie_get); }); //cookieを削除する $('#cookie_delete').click(function(){ //cookie「test_cookie」の削除 $.removeCookie('test_cookie', { path: '/' }); }); }); //--> </script> </head> <body> <p><input type="button" value="cookieの発行" id="cookie_save" ></p> <p><input type="button" value="cookieの取得" id="cookie_get" ></p> <div id="cookie_output"></div> <p><input type="button" value="cookieの削除" id="cookie_delete" ></p> </body> </html>
オブジェクト(連想配列)のcookieを操作する
「jquery.cookie」を使って、オブジェクト形式のcookieの発行・取得・削除を行うサンプルを作ってみました。
こちらもデモを準備しています。デモはこちら。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <title>デモ</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script> <script src="jquery.cookie.js"></script> <script type="text/javascript"> <!-- $(function(){ //オブジェクト(連想配列)のcookieを扱うので宣言 $.cookie.json = true; //オブジェクトのcookieを発行する $('#cookie_json_save').click(function(){ //cookie用のオブジェクトを作成 var cookie_object = {apple:"りんご", orenge:"みかん", banana:"ばなな"}; //有効期限1日、有効範囲はドメイン全体のcookie「test_cookie_json」を発行 $.cookie('test_cookie_json', cookie_object, { expires: 1, path: '/' }); }); //オブジェクトのcookieを取得する $('#cookie_json_get').click(function(){ //cookie「test_cookie_json」を取得 var cookie_object_get = $.cookie('test_cookie_json'); //オブジェクトのcookieデータをループで取得 for(key in cookie_object_get){ //取得したcookieをid要素「cookie_output」に出力する $('#cookie_output').append(cookie_object_get[key]); } }); //オブジェクトのcookieを削除する $('#cookie_json_delete').click(function(){ //cookie「test_cookie」の削除 $.removeCookie('test_cookie_json', { path: '/' }); }); }); //--> </script> </head> <body> <p><input type="button" value="cookieの発行" id="cookie_json_save" ></p> <p><input type="button" value="cookieの取得" id="cookie_json_get" ></p> <div id="cookie_output"></div> <p><input type="button" value="cookieの削除" id="cookie_json_delete" ></p> </body> </html>
あわせて読んでほしい!
コメント
まだコメントはありません。