2011-01-19 3 views
1

私はこのJavaScriptコードがあります。JavaScriptタイマーをボックスに入れる方法は?

<script type="text/javascript"> 
       function timeMsg() { 
       var t=setTimeout("doRedirect()",10000); 
       } 
       function doRedirect() { 
       window.location.replace("http://www.codemeh.com/"); 
       } 
       timeMsg(); 
       </script> 

をしかし、私は右上にある、と私リットルに浮かぶボックスに残っているどのくらいの時間を表示したい、JavaScriptをittle知識が、私はどこへ見当がつかないスタート:(

誰かが私を助けることができる

答えて

3
(function(count) { 
    setInterval(function() { 
     if(count === 0) { 
      window.location.href = "http://www.codemeh.com/"; 
     } 
     else { 
      document.getElementById('box_that_floats_top_right').innerHTML = 'Timeleft: ' + (count/1000); 
      count -= 1000; 
     } 
    }, 1000); 
}(10000)); 

デモ:?http://www.jsfiddle.net/4yUqL/77/

+0

ネストされたタイムアウトについては考えていませんでした。私はこれが好き。 –

+0

ありがとう非常にmcuh – cdog5000

+0

よい解決+1。ちょうど質問です。私がページをリダイレクトしたくない場合、何か他のことをしたいのであれば、私はその間隔をクリアしなければならないと思います。そのsetInterval(...)を変数(つまりmyInterval)に代入してから、count === 0がtrueのときにclearInterval(myInterval)を呼び出しますか? – stecb

0
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 

    timeLeft = 10; 
    function timeMsg() { 
     if(--timeLeft == 0) { 
      doRedirect(); 
     } else { 
      $("#time").val(timeLeft); 
      setTimeout("timeMsg()",1000); 
     } 
    } 
    function doRedirect() { 
     window.location.replace("http://www.codemeh.com/"); 
    } 
    $(document).ready(function() { 
     $("#time").val(timeLeft); 
     setTimeout("timeMsg()",1000); 
    }); 
</script> 
<input id="time" size="5"></input> 
+0

は、あなたが 'setInterval'を意味し、また、setTimeout''に文字列を渡さないでください。 – SLaks

+0

私は 'setTimeout'を意味しました。どちらも動作します。文字列を渡すことができます。 http://www.w3schools.com/jsref/met_win_settimeout.asp –

+1

**しないでください**。それは遅いです。 http://w3fools.com/#jssucks – SLaks

1

あなたのための迅速な解決策:

<input id="box" type="text" size="8" /> 

<script> 
//Init vars 
var milsec=0; 
var sec=30; 
var box = document.getElementById("box"); 

function display() { 
    if (milsec <= 0){ 
     milsec=9; 
     sec-=1; 
    } 
    if (sec <= -1){ 
     milsec=0 ; 
     sec+=1; 
    } else { 
     milsec-=1 ; 
     box.value = sec + "." + milsec; 
     //call function display after 100ms 
     setTimeout(function() {display();},100); 
    } 
} 
display(); 
</script> 
+0

'display'自体を渡すことができます。 – SLaks

関連する問題