Cookie失效日期

mr.*_*ta1 15 javascript cookies

我不是程序员.我正在尝试使用cookie脚本来记住最后一个下拉菜单选项.

我找到了一个有效的脚本,但它只有一个会话cookie.如何在此脚本中向cookie添加过期日期?

<head>
  <script>        
    function SETcookie() {
      document.cookie = "Selected=" + document.getElementById('myList').selectedIndex;
    }

    function GETcookie() {
      if (document.cookie) {
        eval(document.cookie);
        document.getElementById('myList').selectedIndex = Selected;
      }
    }    
  </script>
</head>

<body onLoad="GETcookie()">
  <select id="myList" onChange="SETcookie()">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
    <option value="4">Option 4</option>
  </select>
</body>
Run Code Online (Sandbox Code Playgroud)

vim*_*ist 11

试试这个:

function setCookie(c_name,c_value,exdays) {
   var exdate=new Date();
   exdate.setDate(exdate.getDate() + exdays);
   document.cookie=encodeURIComponent(c_name) 
     + "=" + encodeURIComponent(c_value)
     + (!exdays ? "" : "; expires="+exdate.toUTCString());
     ;
}
Run Code Online (Sandbox Code Playgroud)

c_name 是cookie的名称

c_value 是cookie值

exdays 是您希望Cookie过期的天数

资料来源:http://www.w3schools.com/js/js_cookies.asp

  • 逃逸已被弃用。你不应该使用它。顺便说一句,请务必仔细检查来自 w3schools 的示例... (3认同)

小智 6

可能这会有所帮助

document.cookie = "coolName"+ "=" +"coolValue"+ ";" + "expires="+ new Date(new Date().getTime()+60*60*1000*24).toGMTString()+";path=/";
Run Code Online (Sandbox Code Playgroud)


Clo*_*ble 5

尝试

var a = new Date();
a = new Date(a.getTime() +1000*60*60*24*365);
document.cookie = 'mycookie=somevalue; expires='+a.toGMTString()+';'; 
Run Code Online (Sandbox Code Playgroud)

附注。值 1000*60*60*24*365 = 1 年

要获取选定的索引,请尝试使用此 GETcookie:

function GETcookie(){    
if (document.cookie){    
var a = document.cookie;
Selected = a.substring(a.search('Selected=')+9,a.search(';'));
alert("Selected = " + Selected);
document.getElementById('myList').selectedIndex=Selected;
}}
Run Code Online (Sandbox Code Playgroud)


Luk*_*kas 5

这是100%正常工作的功能,没有折旧的功能。

function setCookie(variable, value, expires_seconds) {
    var d = new Date();
    d = new Date(d.getTime() + 1000 * expires_seconds);
    document.cookie = variable + '=' + value + '; expires=' + d.toGMTString() + ';';
}
Run Code Online (Sandbox Code Playgroud)