为了账号安全,请及时绑定邮箱和手机立即绑定

js中如何设置cookie的保存时间呢?

/ 猿问

js中如何设置cookie的保存时间呢?

慕婉清6462132 2019-03-20 14:13:53

代码如下图,我是想第一次进入网站是进入欢迎页的,第二次以后就进入网站主页了,但一关闭浏览器cookie就没了,又得进入欢迎页。请教一下如何设置这个cookie的保存时间,如1个月,这一个月内如果不是手动清除cookie的话都是进入网站主页。

<SCRIPT language="JavaScript">
function GetCookie(Name)
{
var search = Name + "="
var Cookie =document.cookie;
if (Cookie.length <= 0 )return "";// cookie 不存在,返回空值
if (Cookie.indexOf(search)==-1)return "";// 'visited' 不存在,返回空值
start = Cookie.indexOf(search)+ search.length//"visited=yes"起始位置索引值
end = Cookie.indexOf(";", start);//"visited=yes"终止位置索引值
if (end == -1);//";"不存在
end = Cookie.length;
return unescape(Cookie.substring(start, end))
}
function SetCookie()
{
if (GetCookie('visited')=='')
{
document.cookie="visited=yes"
document.location.href="index.html";//修改为首页 
}
}
SetCookie()
</SCRIPT>


查看完整描述

3 回答

?
慕雪6442864

设置cookie的保存时间,通过cookie的expires性质指定一个终止时间就可以了。也就是说,你在设置cookie的时候,你的cookie字串要像下面这样组合:

1

2

3

var d= new Date();

d.setHours(d.getHours() + (24 * 30)); //保存一个月

document.cookie = "visited=yes; expires=" + d.toGMTString();

这样你的cookie就能保存一个月了,下面是我测试用的代码,你自己看看是否有其他帮助,有的话尽管拿去:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

<html>

  <head>

    <script language="javascript">

      function Window_Load(){

       setCookie("name","111"); //临时cookie

       setCookie("age","222",24 * 7);  //保存7天

       setCookie("address","333",24,"/"); //保存1天,path为根目录

        

       //设定cookie为安全的(secure=true),只能在HTTPS或与其他安全协议

       //连接在一起的时候才被传输

       setCookie("phone","444",24,"/",".",false);

       alert(document.cookie);

       alert(getCookie("age"));

        

       //删除名称为"age"的cookie

       removeCookie("age") 

       alert(document.cookie);

       //删除名称为"address"的cookie,因为设置时设定的path,所以删除

       //时也需要传入对应path

       removeCookie("address","/") 

       alert(document.cookie);  

      }

       

      function setCookie(name,value,hours,path,domain,secure){

          var cdata = name + "=" + value;

          if(hours){

              var d = new Date();

              d.setHours(d.getHours() + hours);

              cdata += "; expires=" + d.toGMTString();

          }

          cdata +=path ? ("; path=" + path) : "" ;

          cdata +=domain ? ("; domain=" + domain) : "" ;

          cdata +=secure ? ("; secure=" + secure) : "" ;

          document.cookie = cdata;

      }

       

      function getCookie(name){

          var reg = eval("/(?:^|;\\s*)" + name + "=([^=]+)(?:;|$)/"); 

          return reg.test(document.cookie) ? RegExp.$1 : "";

      }

       

      function removeCookie(name,path,domain){

          this.setCookie(name,"",-1,path,domain);

      }

        

    </script>

  </head>

  <body onload="Window_Load();">

   

  </body>

</html>


 


查看完整回答
反对 2019-03-27
?
qq_笑_17


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

var cookie = function () {

        //expires参数是Date()实例

        var set = function (cookieName, cookieValue, expires, path, domain, secure) {

            var A = arguments;

            var H = arguments.length;

            var B = (2 < H) ? A[2].toGMTString() : "";

            var G = (3 < H) ? A[3] : "";

            var D = (4 < H) ? A[4] : "";

            var F = (5 < H) ? A[5] : false;

            document.cookie = cookieName + "=" + escape(cookieValue) + ";expires =" + B + ";path = " + G + ";domain =" + D + ((F == true) ? ";secure" : " ")

        }

        //cname:cookie名称,itemName:该cookie中某一项名称

        var get = function (cname, itemName) {

            var A = document.cookie.match(new RegExp("(^| )" + cname + "=([^;]*)(;|$)"));

            if (A) {

                if (itemName) {

                    A = A[2].match(new RegExp("(?:^|&)" + itemName + "=([^&]*)(?:&|$)"))

                    return A ? A[1] : "";

                }

                else {

                    return A[2];

                }

            }

            else {

                return "";

            }

        }

        return {

            set: set,

            get: get

        }

    }();

//使用: 

cookie.set("test", "值", new Date(Date.parse('2016-1-1')))



查看完整回答
反对 2019-03-27
?
沧海一幻觉

setDate(exdate.getDate()+10) //getDate()表示天数,这里表示存储10天
setDate(exdate.getHours()+10) //存储10个小时
...
完整范例请参考:http://www.daixiaorui.com/read/6.html
还有设置cookie作用域,全站cookie的方法。

查看完整回答
反对 2019-03-27

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信