我在“两周保持登录”的复选框后写了个方法:
function setCookie()// 两个参数,一个是cookie的名子,一个是值
{
var chkbox = document.getElementById("SetLastUser");
if(chkbox.checked){
var name = document.getElementById("username").value;
var value = "all-wisdom-member";
    var Days = 14; // 此 cookie 将被保存 30 天
    var exp  = new Date();    // new Date("December 31, 9998");
    exp.setTime(exp.getTime() + Days*24*60*60*1000);
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
    alert("cunle");
}
}然后在其他页面的取cookie的js代码里写了个这样的代码
 var user = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
 if (user!=null) {
     document.write('欢迎您<em>' +  unescape(user[2]) + '</em>|<a href="#">帮助</a>|<a href="#">退出</a>');
 } else {
     document.write('<span style="color:red;">您还未登录!</span>|<a href="land2.jsp">登录</a>|<a href="zhuce1.jsp">注册</a>|<a href="#">帮助</a>');
}
但是始终页面都是显示的未登录。我想把后面那个取cookie写成一个function,但是不知道,这个方法在页面加载的什么时候调用。
到底是我的cookie方法没写对,还是怎么回事呢??请教大神,因为我是很菜。
如果能有你们写的js的cookie源码,借鉴一下能最好了。。

解决方案 »

  1.   

    我当初是看了w3school的示例就会用了
    http://www.w3school.com.cn/js/js_cookies.asp
      

  2.   

    用JQuery写不行么?<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>手写html</title>
    <!-- 引入外部js -->
    <script type="text/javascript" src="jquery-1.7.js"></script>
    <script type="text/javascript" src="jquery.cookie.js"></script>
    <!-- 写javascript -->
    <script type="text/javascript">
    //需要部署到服务器才能生效
    $(function(){
    alert($.cookie("UserName"));
    if($.cookie("UserName")){
    $("#1").val($.cookie("UserName"));
    }
    $("#2").click(function(){
    $.cookie("UserName",$("#1").val(),{expires:1});//设置cookie,保存一天expires:1
    });
    });
    </script>
    </head>
    <body>
    <input type="text"  id="1"/>
    <input type="button" value="写cookie"  id="2"/>
    </body>
    </html>
      

  3.   

    你可以把获取cookie单独的写成一个方法。给你我的,完全可以用
    //得到cookie中某一关键字的值,
    //key为关键字名称
    function getACookie(key) {
        var strcookie = document.cookie;
        var arrcookie = strcookie.split("; ");
        var keyval;
        //遍历cookie数组,处理每个cookie对
        for (var i = 0; i < arrcookie.length; i++) {
            var arr = arrcookie[i].split("=");
            //找到名称为userId的cookie,并返回它的值
            if (key == arr[0]) {
                keyval = arr[1];
                break;
            }    }
        return keyval;
    }//这个方法返回的就是根据cookie名得到的cookie值