这段代码出现了一些非常错误:
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
答案 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>