0

我试图找出它的用户是否第一次在我的网页上。我目前正在本地存储中存储一个变量并检查它是否为空,但它似乎在 Internet Explorer 中不起作用。我还可以使用什么其他方法来完成此操作?

    var str_count = localStorage.getItem("count");
    if (str_count == null || str_count == "null")
    {
               // Do something
             }
4

3 回答 3

1

你可以设置一个cookie

document.cookie = name + "=" + value + "; expires=" + exp + "; path=/";

更多信息在这里:http ://www.w3schools.com/js/js_cookies.asp

更多信息在这里:http ://www.quirksmode.org/js/cookies.html

于 2012-05-07T21:53:12.207 回答
1

设置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的更多信息。

于 2012-05-07T22:10:20.600 回答
0

正如@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参数

于 2012-05-07T22:00:16.377 回答