检查其用户是否首次使用Javascript在现场
Check if its users first time on site using Javascript
我试图找出它是否是用户第一次出现在我的网页上。我目前正在本地存储中存储一个变量并检查其是否为空,但它似乎在 Internet Explorer 中不起作用。我可以使用什么其他方法来实现此目的?
var str_count = localStorage.getItem("count");
if (str_count == null || str_count == "null")
{
// Do something
}
设置具有长到期日期的cookie
肯定比使用localStorage
更可靠,因为旧版浏览器尚不支持它。
检查此代码:
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
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,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
在此处阅读有关 Cookie 的更多信息。
你可以用
document.cookie = name + "=" + value + "; expires=" + exp + "; path=/";
更多信息在这里: http://www.w3schools.com/js/js_cookies.asp
更多信息在这里: http://www.quirksmode.org/js/cookies.html
正如@Greg所说,更好的解决方案是设置并获取cookie值。下面是两个函数来执行此操作:
setCookie = function(){
var args = arguments,
name = (args[0] ? args[0] : '') + '=',
_value = args[1] ? escape(args[1]) : '',
value = _value + ';',
expires = args[2] ? 'expires=' + args[2].toUTCString() + ';' : '',
path = args[3] ? 'path=' + args[3] + ';' : '',
domain = args[4] ? 'domain=' + args[4] + ';' : '',
secure = args[5] ? 'secure;' : '',
newCookie = name + value + expires + path + domain + secure;
document.cookie = newCookie.match(/[a-z||A-Z]/) ? newCookie : ''
return _value;
},
getCookie = function(name){
if(!name || name.replace(/[^a-z|0-9|çáéíóúãõâêîôûàèìòùäëïöü]/,'')=='*') return document.cookie;
var ck = ' ' + document.cookie + ' ',
pos = ck.search(' ' + name + '='),
pos = (pos!=-1) ? pos + 1 : ck.length,
ck = ck.substring(pos-1,ck.length),
end = (ck.search('; ')!=-1) ? ck.search('; ') : ck.length,
value = ck.substring(((ck.search('=')!=-1) ? (ck.search('=')+1) : end),end);
return unescape((value[value.length-1]==' ') ? value.substring(0,value.length-1) : value);
}
它们是跨浏览器函数。要使用getCookie
函数,只需使用 name
参数,对于 setCookie
函数,请使用name,value,expires,path,domain,secure
参数
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- Javascript未在现场运行
- Javascript setInterval在localhost上工作,但确实'Don’我不在现场工作
- Vanilla Javascript函数在JsFiddle上工作,但不在现场工作
- 检查其用户是否首次使用Javascript在现场
- 使用Javascript进行现场编辑
- JavaScript工作在小提琴,但不是在现场
- 为什么我的javascript在现场停止工作,但在测试环境中工作得很好
- 现场Javascript不能在Electron中工作,但可以在其他任何地方工作
- 如何使用本地javascript文件在现场使用firebug(或Chrome)进行测试