当前位置:编程学习 > C#/ASP.NET >>

javascript中cookies问题

我写了代码。。一个是用来设置一个cookie的,另一个是用来显示cookie内容是否存在,,照常说我运行一个界面时,设置了一个cookie,后停止运行,再 启动一个显示cookie的界面,此界面应该会显示出我之前设置的cookie的值,但没达到这个效果,找不到刚才设置的那个cookie,。。。。为什么啊  两个js代码如下
//设置cookie
window.onload=nameFieldinit;
function nameFieldinit()
{
 var userName="";
 if(document.cookie!="")
  {
    userName=document.cookie.spilt("=")[1];
  }
 document.getElementById("nameField").value =userName;
 document.getElementById("nameField").onblur=setCookie;

}
function setCookie()
{
  var expireDate=new Date();
  expireDate.setMonth(expireDate.getMonth()+6);//日期延长留个月
  var userName=document.getElementById("nameField").value;
  document.cookie="userName="+userName+"; expires="+expireDate.toDateString();


}

//显示cookie
window.onload=showcookie;
function showcookie()
{
  var outmsg="";
  if(document.cookie=="")
  {
    outmsg="there is no cookie";
  }
  else
  {
   var thiscookie=document.cookie.split("; ");//注意分号后面有空格号
   for(var i=0;i<thiscookie.length;i++)//获取cookie中的各个记录
    {
      outmsg+="cookie name is "+thiscookie[i].split("=")[0];
      outmsg+=", and cookie value is"+thiscookie[i].split("=")[1]+"<br/>";
    }
  }
  document.getElementById("xianshi").innerHTML=outmsg;
}

请大家帮忙看看啊  --------------------编程问答-------------------- 两个文件是否在一个站点下
SetCookies : function(name,value,exptime){
        try{
            if(arguments.length == 2) return arguments.callee(name,value,30*24*60*60*1000);
                           
            var exp = new Date();
            exp.setTime(exp.getTime() + exptime);
            document.cookie = name + "="+ escape(value) +";expires="+ exp.toGMTString();
        }
        catch(e){
           throw new Error("SetCookies: " + e.message);
            return false;
        }
    }
    /// 读cookie
    GetCookies : function(name){
        try{
            var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
            if(arr != null) 
               return unescape(arr[2]); 
            return null;
        }
        catch(e){
             throw new Error("GetCookies: " + e.message);
            return false;
        }
    }

//调用
document.getElementById('btn').attachEvent("onclick",function(){
    SetCookies ("key","value");
});

--------------------编程问答-------------------- 是在同一个站点下。。。那就是我的那段代码是不行的吗?? --------------------编程问答-------------------- 1.可能你没有写入成功,也就是写cookie代码有问题
2.可能你没有读成功,也就是读cookie代码有问题.

简单判断一下,当你开启新的读窗口时,在这个窗口的url栏输入
javascript:alert(document.cookie)

如果弹出窗口中有你刚才写的cookie,那说明....

另外,最好给这个cookie加上一个有效期,以及一个全局的path,即/ --------------------编程问答-------------------- 估计是没有写入成功 --------------------编程问答-------------------- 有些浏览器新开一个窗口时,相当于一个新的http对话
如果你前面写的 cookie没有设有效期,那么实际上只在当前对话中有效
你新开窗口就无法取到了.
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,