javascript - setInterval()不执行的问题
迷茫
迷茫 2017-04-10 16:07:05
0
2
619
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>倒计时效果</title>
        <link rel='stylesheet' type='text/css' href='css/cs1.css' />
        <script type='text/javascript' src="js/js1.js"></script>
    </head>
    <body>
        <center>
            <h1>倒计时效果</h1><hr/>
            <form name='formnow'>
                <input type='text' name='dd' size=2 />天
                <input type='text' name='hh' size=2 />小时
                <input type='text' name='mm' size=2 />分
                <input type='text' name='ss' size=2 />秒<br /><br />
                <input type='text' id='txt' name='txt' size=40 value=''/>
            </form>
        </center>
    </body>
</html>

window.onload=function(){
    var time=new Date();//获取当前时间
    var yer=time.getFullYear();//年
    var month=time.getMonth()+1;//月
    var day=time.getDate();//天
    var h=time.getHours();//时
    var m=time.getMinutes();//分
    var s=time.getSeconds();//秒
    //var mil=time.getMilliseconds();//毫秒
    var ownDate=yer+'年'+month+'月'+day+'日'+h+'时'+m+'分'+s+'秒';
    
    function a(){
        document.formnow.txt.value=ownDate;
    }
    window.setInterval(a,1000);
}

//为什么window.setInterval(a,1000);只执行一次后就在也不执行呢????????????????

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

Antworte allen(2)
Peter_Zhu

因为你把setInterval()写在window.onload函数里了,而window.onload只会执行一次,所以它里面的函数,也只会执行一次。

另外补充一下,一般调用setInterval()的时候,这样写:

setInterval("time()",1000);

前面不用加window

巴扎黑
window.onload = function() {
    setInterval(function() {
        var time=new Date();//获取当前时间
        var yer=time.getFullYear();//年
        var month=time.getMonth()+1;//月
        var day=time.getDate();//天
        var h=time.getHours();//时
        var m=time.getMinutes();//分
        var s=time.getSeconds();//秒
        //var mil=time.getMilliseconds();//毫秒
        var ownDate=yer+'年'+month+'月'+day+'日'+h+'时'+m+'分'+s+'秒';
        document.formnow.txt.value=ownDate;
    }, 500);
}

变量声明全部包裹在a方法里即可。
提示两点:

  1. setInterval尽量使用匿名方法

  2. 这种现实当前时间的,一般用半秒执行一次,这样能避免打开网页不在整秒的问题

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage