如何使用JavaScript获取和设置Cookie?

时间:2011-04-12 03:53:18

标签: javascript cookies username

我正在尝试在页面上实现Cookie;我无法让它正常运行。我也想存储一些变量的值。我意识到这是非常广泛的,但我对jscript cookies知之甚少,而且我正在研究w3schools的例子。如果有人有一些有用的洞察力推动我这将是伟大的。这就是我到目前为止所做的:

var days=365;
function setCookie(child,user,days)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + days);
var child=escape(user) + ((365==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=child + "=" + child;
}

function getCookie(child)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  x=x.replace(/^\s+|\s+$/g,"");
  if (x==child)
    {
    return unescape(y);
    }
  }
}

function checkCookie()
{
var username=getCookie("username");
  if (username!=null && username!="")
  {
  alert("Welcome again " + username);
  }
else 
  {
  username=prompt("Please enter your name:","");
  if (username!=null && username!="")
    {
    setCookie("username",username,days);
    }
  }
}

1 个答案:

答案 0 :(得分:2)

是的,你在第1行有一个解析错误。正如Matt所说,“365”在这里不合法。

此外,看起来这段代码永远不会评估为真......

if (x==child)
    {
    return unescape(y);
    }
  }

...所以cookie值y永远不会被返回。

在你的代码中还有其他一些看起来有问题的东西,但我会从我在这里提到的内容开始。另外,尝试使用一些JavaScript工具进行调试,即。萤火。