• 締切済み

アクセス時からのカウントダウンタイマー設置について質問です。

アクセス時からのカウントダウンタイマー設置について質問です。 サイトに設置するカウントダウンタイマーで 例えば、期限を2日間と設定し、 初回の訪問時からカウントできますか? 同じ人が2回目にサイトを訪問した場合は 初回からカウントされた時間の続きになります。 ですから、訪問者1人1人 訪問時間が違うわけですから、 それぞれ期限が異なることになります。 このような設定のスクリプトは可能でしょうか?

みんなの回答

  • zeff
  • ベストアンサー率69% (137/198)
回答No.3

さっそく訂正: onsubmit="return WriteCookie('RTIME)" は無しで;;

sh05
質問者

お礼

大変ご丁寧にご返答いただきまして ありがとうございます。 2日後に設定するにはどうしたらよいでしょうか。 またフォーム形式になっていますが テキスト文字だけにすることは可能ですか? ご教授お願い致します。

  • zeff
  • ベストアンサー率69% (137/198)
回答No.2

http://www.sasaraan.net/program/js/jscookie.html onload時にCookieを読み出し、 setIntervalで持ち時間を減らす関数を1秒おきに呼び出し、 と同時にCookieに持ち時間の残りを書き出す。 そして持ち時間が0になったらclearTimeout。 という具合にやっていけばいいんじゃ無いでしょうか。 以下、試してみたけどたぶんNG箇所があると思います。関数名も適当^^; 持ち時間は仮に20秒にしてあります。 <html lang="ja"> <head> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>タイトル</title> <script type="text/javascript"> <!-- function WriteCookie( key, v ){ var str = key + "=" + escape( v ) + ";"; var dt = new Date(); dt.setDate( dt.getDate() + 365 );//Cookieを1年間保存 str += "expires=" + dt.toGMTString() + ";"; document.cookie = str; return false; } function ReadCookie( key ){ var sCookie = document.cookie; var aData = sCookie.split(";"); var oExp = new RegExp(" ", "g"); key = key.replace(oExp,""); var i = 0; while ( aData[i] ) { var aWord = aData[i].split("="); aWord[0] = aWord[0].replace( oExp,""); if( key == aWord[0] ) return unescape(aWord[1]); if( ++i >= aData.length ) break; } return ""; } function yourTime(){ var o = document.getElementById('utime'); if( !o ) return false; o.value = restTime + "秒"; if( restTime <= 0 ){ clearInterval( timerID ); window.alert("持ち時間を使いきりました。"); }else{ restTime--; } WriteCookie("RTIME", restTime ); } function getYourTime(){ restTime = ( ReadCookie("RTIME") ? parseInt( ReadCookie("RTIME") ) : 20 ); if( restTime ) timerID = setInterval( yourTime ,1000); else window.alert("持ち時間を使いきっています。"); } window.onload = function(){ getYourTime(); } //--> </script> </head> <body> <form name="form1" id="form1" action="#" onsubmit="return WriteCookie('RTIME)"> <p><label for="utime">貴方の持ち時間:<input type="text" id="utime" value=""></label> </form> </body> </html>

  • hanmemomo
  • ベストアンサー率35% (205/580)
回答No.1

そういうのを「クッキー」って言います。 サイト側ではなく、クライアントが自分で管理する機能ですね。 ということで、クッキーを使ったプログラムを調べれば いろいろサンプルが出ますよ。 がんばってね

sh05
質問者

お礼

ご回答いただきましてありがとうございます。 早速検索をかけてみたのですが なかなか見つかりません。 もし可能でしたら スクリプトを教えていただけると有り難いです。

関連するQ&A