javascript cookie,请帮忙

时间:2009-12-13 12:30:32

标签: javascript cookies

我在我的网站上显示一个div,我想只显示该用户访问过我网站的5次。因此,经过5次,它不再显示div了。

我可以用cookies做。但我只熟悉PHP。 Javascript不是我强大的一面。

是否有任何人只需要一小段代码来设置cookie,每次访问都会增加它,如果值大于5,那么不再显示DIV了吗?

由于

3 个答案:

答案 0 :(得分:0)

Quirksmode has an article discussing cookies,其中还包括三个非常方便的辅助函数(向下滚动到底部)。阅读文章,无论如何都会变得清晰。

请记住,所有信息都存储为字符串,因此它将作为字符串进行检索。因此,在对数据执行任何操作之前,您肯定应该做一些手动类型的杂耍。见这里:

var x = 1;
createCookie("myVar", x);

var newX = readCookie("myVar") + 1;

alert(newX); // "11"

// --- instead, do this: ---

var newX = parseInt(readCookie("myVar"), 10) + 1;

答案 1 :(得分:0)

没有人会有你要求的那段代码,但从这两个必要的功能开始,你应该很容易自己编写代码:

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 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;
}

答案 2 :(得分:0)

假设您在Cookie中有变量访问,您主要使用与此类似的内容

function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    {
    c_start=c_start + c_name.length+1;
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    }
  }
return "";
}

var visits = getCookie("visits_number");

if (visists > 5)
    document.getElementById("your_div_name").setAttribute("style", "visibility: hidde");