此脚本应计数cookie的设置次数,并在count为1或2时执行特定操作。由于某种原因,它不会匹配1中的1开关。我曾尝试将它作为字符串“1”来操作,我试图用许多不同的方式重写它。似乎没有什么能让它匹配。Javascript:switch与从cookie中提取的变量值不匹配
<HTML>
<HEAD>
<TITLE>Hello World</TITLE>
</HEAD>
<BODY>
<SCRIPT type="text/javascript">
function SetCookie(name, value, time)
{
var expires = new Date(); expires.setTime(expires.getTime() + time); document.cookie = name + '=' + value + '; expires=' + expires.toGMTString() + '; path=/';
}
function GetCookie(name)
{
var cookies = document.cookie.toString().split('; ');
var cookie, c_name, c_value;
for (var n=0; n<cookies.length; n++)
{
cookie = cookies[n].split('='); c_name = cookie[0]; c_value = cookie[1];
if (c_name == name)
{ return c_value; }
}
return null;
}
function CheckTarget(e)
{
var cookieValue = GetCookie('vrOp');
if (cookieValue === null) {
var cookieOp = 1;
SetCookie('vrOp', cookieOp, 5*24*60*60*1000);
}
else {
switch(cookieValue)
{
case 1:
var cookieOp = cookieValue + 1;
alert(cookieOp);
SetCookie('vrOp', cookieOp, 5*24*60*60*1000);
break;
case 2:
var cookieOp = cookieValue + 1;
SetCookie('vrOp', cookieOp, 5*24*60*60*1000);
break;
}
}
}
function InitVr()
{
if (document.attachEvent)
{
document.attachEvent('onclick', CheckTarget);
}
else if (document.addEventListener)
{
document.addEventListener('click', CheckTarget, false);
}
}
InitVr();
</SCRIPT>
<script type="text/javascript">
</script>
</BODY>
</HTML>
如果没有工作,你应该也不会从第一次点击的cookieValue脚本反应===空,但它设置为1的cookie值。第二次点击它应该提醒您cookie值现在将变为2.第三次点击不会再次发出警报,但是当设置为3时,该值不会再发出警报。就好像交换机没有运行一样。
alert或console.log cookie值 – mplungjan 2013-02-20 13:41:49
只是一个观察 - 除了'alert'语句,您的'case 1'和'case 2'主体是相同的。 – JAAulde 2013-02-20 14:00:43