JavaScriptによるcookieが有効か無効かの判定
cookieが有効か無効かの判定の際に、IEとEdgeだけうまくいかなかったので対処法のメモになります。自分用ですが誰かの役に立てば幸いです。
IEおよびEdge以外
「cookie javasicrpt 無効 判定」などでググると"navigator.cookieEnabled"による判定の記事をよく目にします。しかしChrome、Firefox、Safariは判定できるのですが、IEとEdgeはcookieをブロックにしても"true"が返ってきてしまいました。
if(navigator.cookieEnabled){
//cookie 有効
}else {
//cookie 無効
}
DEMO1
※ cookieの設定を切り替えてお試しください、IEおよびEdgeでご覧ください。
対処方法
var setCookie = function(cookieName, value){
var cookie = cookieName + "=" + value + ";";
document.cookie = cookie;
}
var getCookie = function(cookieName){
var l = cookieName.length + 1 ;
var cookieAry = document.cookie.split("; ") ;
var str = "" ;
for(i=0; i < cookieAry.length; i++){
if(cookieAry[i].substr(0, l) === cookieName + "="){
str = cookieAry[i].substr(l, cookieAry[i].length) ;
break ;
}
}
return str;
}
setCookie('check_cookie', true);
var val = getCookie('check_cookie');
if(val) {
//cookie 有効
} else {
//cookie 無効
}
var setCookie = function(cookieName, value){
var cookie = cookieName + "=" + value + ";";
document.cookie = cookie;
}
var getCookie = function(cookieName){
var l = cookieName.length + 1 ;
var cookieAry = document.cookie.split("; ") ;
var str = "" ;
for(i=0; i < cookieAry.length; i++){
if(cookieAry[i].substr(0, l) === cookieName + "="){
str = cookieAry[i].substr(l, cookieAry[i].length) ;
break ;
}
}
return str;
}
setCookie('check_cookie', true);
var val = getCookie('check_cookie');
if(val) {
//cookie 有効
} else {
//cookie 無効
}
あらかじめcookieと値をセット。
値が返ってきたら有効、返ってこなければ無効と判別します。
DEMO2
※ edgeはcookieの設定を変更した後ブラウザの再起動が必要です。
対処方法(jQuery)
function setCookie(cookieName, value){
$.cookie(cookieName, value);
}
function getCookie(cookieName){
var c = $.cookie();
var str = '';
for(key in c){
if(key === cookieName){
str = c[key];
}
}
return str;
}
function setCookie(cookieName, value){
$.cookie(cookieName, value);
}
function getCookie(cookieName){
var c = $.cookie();
var str = '';
for(key in c){
if(key === cookieName){
str = c[key];
}
}
return str;
}
jquery.cookie.jsを使い、setCookieとgetCookieをそれぞれ書き直してみました。
ソースも簡潔になり、特別な理由がない限りはjQueryで十分そうです。
Author And Source
この問題について(JavaScriptによるcookieが有効か無効かの判定), 我々は、より多くの情報をここで見つけました https://qiita.com/tatsuyankmura/items/8e09cbd5ee418d35f169著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .