我使用以下代码检查某个cookie是否存在某个值,然后执行某些操作。
$(document).ready(function() {
if (document.cookie.indexOf('samplename=itsvalue')== -1 ) {
alert("cookie");
}
});
它始终显示cookie是否存在的警报。我在这里做错了什么?
答案 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
将此代码粘贴到浏览器控制台中并检查。