仕事でJavaScriptでCookie操作することになりクッキーを操作する関数を作った。
jQueryで楽に実装できるようだが、今回はライブラリを使えない条件だったので。
まだきちんとテストしていないので、何かしらバグがあるかも・・・。
/** * Cookie保存 * key クッキー名 * val クッキーの値 */ function setCookie(key, val) { limitDate = new Date(); //有効期限(2週間) limitDate.setTime(limitDate.getTime() + (24 * 60 * 60 * 30 * 1000)); tmp = key + '=' + escape(val) + '; '; tmp += 'path=/; '; tmp += 'expires=' + limitDate.toGMTString() + '; '; document.cookie = tmp; } /** * Cookie取得 * key クッキー名 * return クッキー名に該当するCookieの値 */ function getCookie(key){ var tmp = document.cookie + ';'; var index1 = tmp.indexOf(key, 0); if(index1 != -1){ tmp = tmp.substring(index1,tmp.length); var index2 = tmp.indexOf('=',0) + 1; var index3 = tmp.indexOf(';',index2); return(unescape(tmp.substring(index2,index3))); } return(''); } /** * Cookie削除 * key クッキー名 */ function deleteCookie(key) { var limitDate = new Date(); limitDate.setYear(limitDate.getYear() - 1); var tmp = key + '=; '; tmp += 'path=/; '; tmp += 'expires=' + limitDate.toGMTString() + '; '; document.cookie = tmp; }