javascript定义cookie

时间:2011-05-09 22:15:13

标签: javascript

这段代码出现了一些非常错误:

function getCookie(c_name)
{
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==c_name)
    {
    return unescape(y);
    }
  }
}

function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}

function checkCookie()
{
var username=getCookie("username");
if (username=="username"){
    document.getElementById(mydivx).style.display = 'block';  }else{
    document.getElementById(mydivx).style.display = 'none'; 
  }
}

和一个定义cookie的按钮:

<a href="#" onClick="setCookie("username",username,365); return true">esconder</a>

所以这应该发生,如果点击按钮,它定义一个名为“username”的cookie,其值为“username”,getcookie函数获取cookie用户名及其值。

我做错了什么?

希望你能帮助我们!

编辑:解决方案:

只需删除“;”从调用中,并从按钮的代码中添加一些单引号:

esconder

感谢stealthyninja

4 个答案:

答案 0 :(得分:2)

在您的HTML代码中,替换

<a href="#" onClick="setCookie("username",username,365); return true">esconder</a>

<a href="#" onClick="setCookie('username', 'username', 365); return false">esconder</a>

return false是因为您的浏览器实际上并未浏览href,这会使哈希(#)出现在您的地址栏中。换句话说,它类似于阻止在没有JavaScript的情况下单击链接的默认操作来阻止它。


更新
第二个username应该是变量或字符串。 username本身未定义。

答案 1 :(得分:1)

你的套装cookie永远不会被调用我相信试试这个:

<a href="#" onClick="setCookie('username',username,365); return true">esconder</a>

答案 2 :(得分:1)

<a href="#" onClick="setCookie("username",username,365); return true">esconder</a>

您的代码中有错误。 onClick =“”和“用户名”...尝试:

 <a href="#" onClick="setCookie('username','username',365);">esconder</a>

答案 3 :(得分:0)

不确定这是否全部,但这一行:

<a href="#" onClick="setCookie("username",username,365); return true">esconder</a>

有问题,因为你要终止字符串。你在双引号内使用双引号;尝试

<a href="#" onClick="setCookie('username',username,365); return true">esconder</a>