このスクリプトは、Cookie が設定された回数をカウントし、カウントが 1 または 2 の場合に特定の処理を行う必要があります。何らかの理由で、スイッチの 1 と一致しません。文字列「1」として試してみましたが、さまざまな方法で書き直そうとしました。一致するものはないようです。
<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 が === null であるため、最初のクリックでスクリプトからの反応は得られません。ただし、Cookie の値は 1 に設定されます。2 回目のクリックでは、Cookie の値が次のようになることが警告されます。 2 にします。3 回目のクリックでは再度アラートは発生しませんが、値は 3 に設定されます。まるでスイッチが実行されていないかのようです。