プロが教えるわが家の防犯対策術!

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

サイトに設置するカウントダウンタイマーで

例えば、期限を2日間と設定し、
初回の訪問時からカウントできますか?

同じ人が2回目にサイトを訪問した場合は
初回からカウントされた時間の続きになります。

ですから、訪問者1人1人 訪問時間が違うわけですから、
それぞれ期限が異なることになります。

このような設定のスクリプトは可能でしょうか?

A 回答 (13件中11~13件)

さっそく訂正:


onsubmit="return WriteCookie('RTIME)"
は無しで;;
    • good
    • 0
この回答へのお礼

大変ご丁寧にご返答いただきまして
ありがとうございます。

2日後に設定するにはどうしたらよいでしょうか。

またフォーム形式になっていますが
テキスト文字だけにすることは可能ですか?

ご教授お願い致します。

お礼日時:2010/06/21 22:14

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>
    • good
    • 0

そういうのを「クッキー」って言います。


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

ご回答いただきましてありがとうございます。

早速検索をかけてみたのですが
なかなか見つかりません。

もし可能でしたら
スクリプトを教えていただけると有り難いです。

お礼日時:2010/06/21 19:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!