检查用户是否已经在浏览器会话中访问过站点
Check if user has alread visited site in browser session
所以当您访问我的网站时,我会播放这个闪屏动画。但是,我只希望动画在您第一次访问它时播放(当然是在会话中)。我尝试在检查名为 "Session" 的 cookie 的地方创建一个 if else,如果它存在,则删除包含动画的 div。如果没有这样的cookie,就创建它。
代码:
function session() {
if (document.cookie.indexOf("visited") >= 0) {
$('.splash').remove(this);
} else {
document.cookie = "visited";
}
}
我以前从未使用过 cookie,所以我想我可能犯了一些错误
处理 cookie 的代码部分应该可以工作。
您的问题存在于此行:
$('.splash').remove(this);
删除 this
,因为没有必要。
该行应如下所示:
$('.splash').remove();
希望对您有所帮助。
Chrome 有一个安全限制,不允许您访问 cookie,除非页面 运行 来自网络服务器。 Firefox 可以在没有带有 cookie 的网络服务器的情况下工作。为了快速测试本地文件,我建议使用 http-server。
我使用下面的 cookie 函数来轻松设置 cookie。原始代码来自 w3cschools 站点,针对 IE8 cookie 问题进行了一些修改。
setCookie = function (c_name,value,exdays) {
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var expires = exdate.toUTCString();
var isIE8 = (document.documentMode !== undefined);
if (exdays == 0) {
expires = (isIE8 == true) ? "" : "0";
}
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+expires);
document.cookie=c_name + "=" + c_value;
}
getCookie = function(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) != -1) return c.substring(name.length,c.length);
}
return "";
}
deleteCookie = function(name) {
document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
要检查 cookie,您可以这样做:
if (getCookie('visited')) {
$('.splash').remove();
deleteCookie('visited');
} else {
setCookie('visited','true',999); //999 days expiration
}
另一种方法:
if (sessionStorage.getItem(‘visited’) !== true){
//code that executed if it is user’s first time
sessionStorage.setItem(‘visited’,true);
}else{
//code that executes if it user has already visited
}
所以当您访问我的网站时,我会播放这个闪屏动画。但是,我只希望动画在您第一次访问它时播放(当然是在会话中)。我尝试在检查名为 "Session" 的 cookie 的地方创建一个 if else,如果它存在,则删除包含动画的 div。如果没有这样的cookie,就创建它。
代码:
function session() {
if (document.cookie.indexOf("visited") >= 0) {
$('.splash').remove(this);
} else {
document.cookie = "visited";
}
}
我以前从未使用过 cookie,所以我想我可能犯了一些错误
处理 cookie 的代码部分应该可以工作。
您的问题存在于此行:
$('.splash').remove(this);
删除 this
,因为没有必要。
该行应如下所示:
$('.splash').remove();
希望对您有所帮助。
Chrome 有一个安全限制,不允许您访问 cookie,除非页面 运行 来自网络服务器。 Firefox 可以在没有带有 cookie 的网络服务器的情况下工作。为了快速测试本地文件,我建议使用 http-server。
我使用下面的 cookie 函数来轻松设置 cookie。原始代码来自 w3cschools 站点,针对 IE8 cookie 问题进行了一些修改。
setCookie = function (c_name,value,exdays) {
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var expires = exdate.toUTCString();
var isIE8 = (document.documentMode !== undefined);
if (exdays == 0) {
expires = (isIE8 == true) ? "" : "0";
}
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+expires);
document.cookie=c_name + "=" + c_value;
}
getCookie = function(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) != -1) return c.substring(name.length,c.length);
}
return "";
}
deleteCookie = function(name) {
document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
要检查 cookie,您可以这样做:
if (getCookie('visited')) {
$('.splash').remove();
deleteCookie('visited');
} else {
setCookie('visited','true',999); //999 days expiration
}
另一种方法:
if (sessionStorage.getItem(‘visited’) !== true){
//code that executed if it is user’s first time
sessionStorage.setItem(‘visited’,true);
}else{
//code that executes if it user has already visited
}