[JavaScript + Cookie]実は有効期限指定がすごく簡単だった件について
- 2007-07-20
- カテゴリ: Client Side
- タグ: JavaScript Cookie Tips
Cookieの有効期限を指定するときって、NetscapeのCookie仕様に従うと、
document.cookie = 'name=value; expires=Thu, 1-Jan-2030 00:00:00 GMT';
のような書式で書かなければいけない。
strftimeのような関数がないJavaScriptでは面倒くさいなーと思って、今まで有効期限を指定するのはあきらめていたのだが、実はDate#toUTCString()の書式を読み込んでくれるみたいだ。
document.cookie = 'name=value; expires=' + new Date(2030, 1).toUTCString();
とりあえず、手元にあるIE6, Firefox2, Opera9で確認済み。Date#toUTCStringで有効期限が指定できるなら楽だ。
これを使って、Cookie書き込み関数を書いてみた。
var Cookie = {
get: function(name) {
var match = ('; ' + document.cookie + ';').match('; ' + name + '=(.*?);');
return match ? decodeURIComponent(match[1]) : '';
},
set: function(name, value, expires, domain, path, secure) {
var buffer = name + '=' + encodeURIComponent(value);
if (typeof expires != 'undefined') buffer += '; expires=' + new Date(expires).toUTCString();
if (typeof domain != 'undefined') buffer += '; domain=' + domain;
if (typeof path != 'undefined') buffer += '; path=' + path;
if (secure) buffer += '; secure';
document.cookie = buffer;
}
};
手軽に使えそうな感じ。使い方の例は↓。有効期限にDateオブジェクトを渡す以外はPHPのsetcookie関数とほぼ同じ。
var exp = new Date();
exp.setMonth(exp.getMonth() + 2);
Cookie.set('cookieName', 'cookieValue', exp, undefined, '/example/');
トラックバックURL
- http://liosk.blog103.fc2.com/tb.php/22-47de347e
1 件のトラックバック
- [JavaScript + Cookie] 空文字を使うときのブラウザ間差異
-
最近JavaScript + Cookieの検索ワードでこのブログにアクセスしてくれる人が多いので、JavaScript + Cookieについてもう少し勉強しなおしてみようと思った...
- 2008-01-30
- 発信元: 文系大学的IT系の悲哀

