2011-01-19 69 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
<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

不要传递一个字符串`setTimeout`此外,你的意思是'setInterval`。 – SLaks 2011-01-19 18:11:39

+0

我的意思是`setTimeout`。两者都有效。传递一个字符串是允许的。 http://www.w3schools.com/jsref/met_win_settimeout.asp – 2011-01-19 18:22:18

+1

**不要这样做**。这很慢。 http://w3fools.com/#jssucks – SLaks 2011-01-19 18:24:03

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>