如何正确获取javascript Cookie?
How to correctly GET javascript Cookie?
在这个 test site 上,我弹出了一个 fancybox 灯箱。然后我添加了代码,希望它只在第一次访问时弹出,但之后再也不会弹出。因此,当单击灯箱中的 link 时,我在 运行s setCookie() 下面有一些 JS。然后加载,我 运行 checkCookie()。如果 cookie 存在,则不显示灯箱。如果不存在,请显示灯箱。
使用我的新设置、获取和检查代码,我现在无法让灯箱工作,我很确定这是因为 getCookie 不是正确的 "getting" cookie。有没有人看出明显的错误?
function setCookie() {
document.cookie="lightboxcookie=lightboxseen; expires=Thu, 18 Dec 2020 12:00:00 UTC";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function checkCookie() {
var thecookie=getCookie("lightboxcookie");
if (thecookie != "") {
} else {
<!--Show Lightbox-->
jQuery.noConflict()(function ($) {
$(document).ready(function() {
$(".lightbox").fancybox();
$(".lightbox").eq(0).trigger('click');
$(".lightbox").fancybox({
helpers : {
overlay : {
css : {
opacity: 0.8,
'background-color' : '#ff0000'
}
}
}
});
});
});
}
}
}
</script>
您的 checkCookie
函数末尾似乎多了一个右花括号。如果您删除您的代码似乎按预期工作:http://jsfiddle.net/akk6wx9q/
顺便说一下,如果您打算使用 JavaScript 在客户端处理 cookie,我建议您看一下经过良好测试且易于使用的 Cookie.js library。通过使用它,您可以节省大量时间和尝试自己开发 cookie 处理函数的痛苦 ;)
在这个 test site 上,我弹出了一个 fancybox 灯箱。然后我添加了代码,希望它只在第一次访问时弹出,但之后再也不会弹出。因此,当单击灯箱中的 link 时,我在 运行s setCookie() 下面有一些 JS。然后加载,我 运行 checkCookie()。如果 cookie 存在,则不显示灯箱。如果不存在,请显示灯箱。
使用我的新设置、获取和检查代码,我现在无法让灯箱工作,我很确定这是因为 getCookie 不是正确的 "getting" cookie。有没有人看出明显的错误?
function setCookie() {
document.cookie="lightboxcookie=lightboxseen; expires=Thu, 18 Dec 2020 12:00:00 UTC";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function checkCookie() {
var thecookie=getCookie("lightboxcookie");
if (thecookie != "") {
} else {
<!--Show Lightbox-->
jQuery.noConflict()(function ($) {
$(document).ready(function() {
$(".lightbox").fancybox();
$(".lightbox").eq(0).trigger('click');
$(".lightbox").fancybox({
helpers : {
overlay : {
css : {
opacity: 0.8,
'background-color' : '#ff0000'
}
}
}
});
});
});
}
}
}
</script>
您的 checkCookie
函数末尾似乎多了一个右花括号。如果您删除您的代码似乎按预期工作:http://jsfiddle.net/akk6wx9q/
顺便说一下,如果您打算使用 JavaScript 在客户端处理 cookie,我建议您看一下经过良好测试且易于使用的 Cookie.js library。通过使用它,您可以节省大量时间和尝试自己开发 cookie 处理函数的痛苦 ;)