最近よくcookieを利用するので、再利用できるようにコードをメソッド化しました。
今のところエラーは出てないので大丈夫なはず・・・
script.js
var COOKIES = COOKIES || {
/*
指定したcookieの値を取得して返す関数
第1引数=取得したいcookiename
*/
getCookie: function(cName) {
var cookie_name = cName;
if(cookie_name == '' || cookie_name == null) {
console.log('COOKIES.getCookie:引数に値を代入してください。');
} else {
var set_replace = '(?:(?:^|.*\s*)' + cookie_name + '\s*\=\s*([^;]*).*$)|^.*$';
var cookie_value = document.cookie.replace(new RegExp(set_replace), '$1');
return cookie_value;
}
},
/*
指定したcookieを追加する関数
第1引数=追加するcookiename;第2引数=追加するcookievalue;第3引数=cookieの有効期限(day)
*/
setCookie: function(cName, cValue, cTime) {
var cookie_name = cName;
var cookie_Value = cValue;
var cookie_domain = location.hostname;
var cookie_time = cTime ? (60 * 60 * 24) * cTime : '';
if(cookie_name == '' || cookie_name == null) {
console.log('COOKIES.setCookie:第1引数に値を代入してください。')
} else {
document.cookie = cookie_name + '=' + cookie_Value + ';domain=' + cookie_domain + ';max-age=' + cookie_time;
}
},
/*
指定したcookieの値を削除する関数
第1引数=削除したいcookiename
*/
deleteCookie: function(cName) {
var cookie_name = cName;
if(cookie_name == '' || cookie_name == null) {
console.log('COOKIES.deleteCookie:引数に値を代入してください。');
} else {
COOKIES.setCookie(cookie_name, '', 0);
}
}
};
cookie値を取得したい場合
// cookiename'hoge'の値を取得して変数get_cookieに代入
var get_cookie = COOKIES.getCookie('hoge');
cookieを追加する場合
// cookiename'hoge'値'hogehoge'を30日間保持
COOKIES.setCookie('hoge', 'hogehoge', 30);
cookieの値を削除する場合
// cookiename'hoge'の値を削除
COOKIES.deleteCookie('hoge');
短くしたやつ
script.js
var COOKIES = COOKIES || {
getCookie: function(cName) {
if(cName != '' || cName != null) {
var set_replace = '(?:(?:^|.*\s*)' + cName + '\s*\=\s*([^;]*).*$)|^.*$';
return document.cookie.replace(new RegExp(set_replace), '$1');
}
},
setCookie: function(cName, cValue, cTime) {
var time = cTime ? (60 * 60 * 24) * cTime : '';
if(cName != '' || cName != null) {
document.cookie = cName + '=' + cValue + ';domain=' + location.hostname + ';max-age=' + time;
}
},
deleteCookie: function(cName) {
if(cName != '' || cName != null) {
COOKIES.setCookie(cName, '', 0);
}
}
};