【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>
あわせて読んでほしい!
コメント
まだコメントはありません。

