检查cookie是否存在无效

时间:2015-10-18 20:51:08

标签: javascript jquery cookies

我使用以下代码检查某个cookie是否存在某个值,然后执行某些操作。

$(document).ready(function() {
   if (document.cookie.indexOf('samplename=itsvalue')== -1 ) {
      alert("cookie");
   }
});

它始终显示cookie是否存在的警报。我在这里做错了什么?

2 个答案:

答案 0 :(得分:11)

原始回复:

除非您的密钥为" samplename = itsvalue",否则您的代码将始终评估为true。如果密钥是" samplename"并且值为" itsvalue",您应该像这样重写支票:

if (document.cookie.indexOf('samplename') == -1 ) {
  alert("cookie");
}

这将告诉您该cookie不存在。

查看它是否存在:

if (document.cookie.indexOf('samplename') > -1 ) {
  alert("cookie exists");
}

更新以更好地解决此问题:

您在该检查中寻找的内容将始终评估为true并抛出警报。将以下函数添加到您的js并调用它以检查您的cookie是否存在。

function getCookie(name) {
    var cookie = document.cookie;
    var prefix = name + "=";
    var begin = cookie.indexOf("; " + prefix);
    if (begin == -1) {
        begin = cookie.indexOf(prefix);
        if (begin != 0) return null;
    } else {
        begin += 2;
        var end = document.cookie.indexOf(";", begin);
        if (end == -1) {
        end = cookie.length;
        }
    }
    return unescape(cookie.substring(begin + prefix.length, end));
} 

然后,您可以使用以下方法检查您的Cookie:

var myCookie = getCookie("samplename");

if (myCookie == null) {
    alert("cookie does not exist");
} else {
    alert("cookie exists");
}

答案 1 :(得分:1)

- (void)prepareForReuse

将此代码粘贴到浏览器控制台中并检查。