我目前正在一个需要年龄检查才能进入的网站上工作。当前的编码方式是页脚中有一个 agecheck div,它在初始页面加载时显示,并且在用户单击“是”之前一直可见。单击“是”将 ofage cookie 设置为 true,它将隐藏 div。这样做的问题是,一旦用户确认了他们的年龄,在其他页面之间导航/刷新当前页面时,agecheck div 将随机并定期显示一瞬间。
我认为最好的方法是重新编码脚本,以便默认情况下始终隐藏 agecheck div,并且它显示的唯一时间是 cookie 为空或用户单击“否”。我对 javascript 和 cookie 的理解非常有限,所以我正在寻找一些关于这方面的指导。
这是年龄检查功能:
function checkAge(){
jQuery('html').css('overflow','hidden');
jQuery('body').css('overflow','hidden');
jQuery('body').css('height','100%');
jQuery('html').css('height','100%');
checkCookie();
// check age will need to check this
if(ofAge){
jQuery("#ageCheck").hide();
initPage();
}else{
jQuery('#ageCheckYes').click(is21);
jQuery('#ageCheckNo').click(isNot21);
}
};
//
// if the user is of age, animate in page
function is21(){
setCookie();
var h = jQuery(document).height();
// animate the div off
jQuery('#ageCheckBeerBG').animate({ top:h + 300 }, 2000+h);
jQuery("#ageCheck").delay(900).fadeOut("fast", function() {
initPage();
});
}
//
// user is not 21 send them on there way
function isNot21(){
alert('I am sorry you must be 21 or older to enter.')
};
//
这是 cookie 检查代码:
function setCookie(){
document.cookie = "age_verified=true"
};
// check for cookie //
function checkCookie(){
var thiscookie = getCookie("age_verified");
if (thiscookie!="true"){
ofAge=false;
}else{
ofAge=true;
}
};
function getCookie(c_name){
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++){
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
console.log(unescape(x));
if (x==c_name){
return unescape(y);
};
};
};
提前致谢!