求助 在线等 javascript读写cookie
function setcookie(){
debugger;
CookieDate=new Date();
CookieDate.setTime(CookieDate.getTime()+10*24*3600*1000);
writecookie("Id","xufengtang",CookieDate);
}
function writecookie(name,value,expires)
{
var expString=((expires==null)?"":(";expries="+expires.toGMTString()));
alert(name+"="+escape(value)+expString);
document.cookie=name+"="+escape(value)+expString;
alert(unescape(document.cookie));
}
能写,也能读,但是游览器关闭后,就没有了,当然C:\Documents and Settings\username\Cookies 也找不到该cookie文件,请问要怎样才能写入本地文件里面呢?
[[it] 本帖最后由 xufengtang 于 2008-4-24 09:11 编辑 [/it]] 有人知道吗,先自己顶下 按照道理,这样的做法是没有问题的。由于我没有使用过javascript设置cookie,刚才做了一个测试:
<!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>
<title>Untitled Page</title>
<script language="javascript">
function setCookie(name, value, expires)
{
var cookie = name + "=" + encodeURIComponent(value);
if (expires)
{
cookie += "; expires=" + expires.toGMTString();
}
document.cookie = cookie;
}
function getCookie(name)
{
var reg = new RegExp("(?:; )?" + name + "=([^;]*);?");
if (reg.test(document.cookie))
{
return decodeURIComponent(RegExp["$1"]);
}
else
{
return null;
}
}
function testSetCookie()
{
var expires = new Date((new Date()).getTime() + 60 * 60 * 24 * 360 * 1000);
setCookie("name", "kingyar", expires);
alert("setCookie : ok");
}
function testGetCookie()
{
alert(getCookie("name"));
}
</script>
</head>
<body>
<a href="javascript:testSetCookie();">test setCookie</a><br>
<a href="javascript:testGetCookie();">test getCookie</a>
</body>
</html>
分别在IE6, FireFox2下测试,先设置cookie, 然后读取,关闭浏览器等待一小会儿,打开页面直接读取,都是可以读取到第一次设置的cookie的。
如果这样做还有问题,我就不知道原因了。
读取COOKIE是这样子的
function getcook(nm){
var allck, oneck, i;
allck = document.cookie.split("; ");
for(i=0;i<allck.length;i++)
{
oneck = allck[i].split("=");
if (oneck.length>=2 && oneck[0]==nm )
{
return oneck[1];
}
}
return (targettxt[0]);
}
function setcook(nm,vl)
{
var d = new Date();
d.setDate( d.getDate()+5 );
document.cookie = nm + "=" + vl + ";expires=" + d.toGMTString();
return;
} 2楼的朋友谢谢,你的代码可以,我再试试。。。。
页:
[1]
