类似csdn论坛两周内不用再登录,cookie具体怎么实现啊?
写了个cookie.js
function SetCookie(sName, sValue)
{
date = new Date(2007,8,17);
document.cookie = sName + "= " + escape(sValue) + "; expires= " + date.toGMTString();
}
function GetCookie(sName)
{
// cookies are separated by semicolons
var aCookie = document.cookie.split( "; ");
for (var i=0; i < aCookie.length; i++)
{
// a name/value pair (a crumb) is separated by an equal sign
var aCrumb = aCookie[i].split( "= ");
if (sName == aCrumb[0])
return unescape(aCrumb[1]);
}
// a cookie with the requested name does not exist
return null;
}
function getCookieVal(offset) {
var endstr = document.cookie.indexOf ( "; ", offset);
if (endstr == -1) endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function delCookie(name){
var exp = new Date();
exp.setTime (exp.getTime()-1000*1800);
var cval = getCookie (name);
document.cookie = name + "= " + cval + "; expires= "+ exp.toGMTString();
}
不过当我验证页面把cookie保存(SetCookie)了后,验证页马上取可以取到(GetCookie),登陆后刷新主页时主页总取不到cookie,更谈不上IE重启了。
是不是由于两个页面都 <script LANGUAGE= "JavaScript " src= "js/cookie.js "> </script> ,但我必须这样做啊!
------解决方案--------------------exp.setTime (exp.getTime()-1000*1800);
这个时间怎么越设越小了,要超过当前日期才可以啊
------解决方案--------------------奇怪你的代码没什么问题啊,我这里可以执行
<script language=javascript>
function SetCookie(sName, sValue)
{
date = new Date(2007,8,17);
document.cookie = sName + "= " + escape(sValue) + "; expires= " + date.toGMTString();
}
function GetCookie(sName)
{
// cookies are separated by semicolons
var aCookie = document.cookie.split( "; ");
for (var i=0; i < aCookie.length; i++)
{
// a name/value pair (a crumb) is separated by an equal sign
var aCrumb = aCookie[i].split( "= ");
if (sName == aCrumb[0])
return unescape(aCrumb[1]);
}
// a cookie with the requested name does not exist
return null;
}
function getCookieVal(offset) {
var endstr = document.cookie.indexOf ( "; ", offset);
if (endstr == -1) endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function delCookie(name){
var exp = new Date();
exp.setTime (exp.getTime()-1000*1800);
var cval = getCookie (name);