问答详情
源自:8-17 编程练习

为什么这样写倒数完之后没有进行页面跳转呢

  <h3>操作成功

  <div>

    <span id="sec"></span><span>秒后回到主页</span>

    <a href="###">返回</a>

  </div>

  <script> 

    var t=document.getElementById("sec"); 

    var num=5;

    var i=setInterval(time(),1000);   

    function time(){

        if(num>0){

            t.innerHTML=num;

            num--;

        }else

            clearInterval(i);

            window.open('http://www.baidu.com','_self','width=300,height=200,menubar=no,toolbar=no,scrollbars=yes,status=no');

        }

    window.onload=time();

 </script> 


提问者:sacagawea 2016-10-10 14:25

个回答

  • 慕粉4096114
    2016-10-10 15:29:35

       var i=setInterval(time(),1000);参数要加“”。var i=setInterval(“time()”,1000);  

       window.onload=time();这一句话可以不要 ,setInterval是每隔1s执行一次

  • qq_一个人乐的小兔子_03311008
    2016-10-10 15:24:41

    我用你的代码测试的直观感觉是没有延时的效果就跳转了。另外,我想要知道你这里使用window.onload=time()是想实现一个怎样的功能?setInterval中的参数书写有些问题,应该要么直接time,要么"time()"。修改后的代码如下

    <h3>操作成功</h3>

      <div>

        <span id="sec"></span><span>秒后回到主页</span>

        <a href="###">返回</a>

      </div>

      <script> 

        var t=document.getElementById("sec"); 

        var num=5;

        var i;

        function time(){

            if(num>-1){

                t.innerHTML=num;

                num--;

            }else{

                clearInterval(i);

                window.open('http://www.baidu.com','_self','width=300,height=200,menubar=no,toolbar=no,scrollbars=yes,status=no');

            }

        }

        i=setInterval("time()",1000);

     </script>


  • 远方的远方
    2016-10-10 15:10:19

    1、 首先语法错误呢, setInterval(time,1000),活着setInterval("time()",1000);

    2、else{},大括号没有加呢