我在“两周保持登录”的复选框后写了个方法:
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源码,借鉴一下能最好了。。
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源码,借鉴一下能最好了。。
http://www.w3school.com.cn/js/js_cookies.asp
<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>
//得到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值