调用函数后屏幕上只剩下一个数字4了,是什么问题?

来源:8-17 编程练习

慕粉188111111

2017-02-09 12:07

<body onlaod="ch_n()">

  <!--先编写好网页布局-->

  <h1>操作成功</h1>

  <strong id="num">5</strong>秒后回到主页

  <a href="#" onclick="history.go(-1)">返回</a>

 

 <script type="text/javascript">  

 var n=parseInt(document.getElementById("num").innerHTML);

 function ch_n(){

    document.getElementById("num").innerHTML=n;

    n--;

    setTimeout("ch_n()",1000);

 }

 //获取显示秒数的元素,通过定时器来更改秒数。

 if(n==0){

     history.go(-1);

 }

   //通过window的location和history对象来控制网页的跳转。

 </script> 

</body>


写回答 关注

2回答

  • 奥义_千年杀4311591
    2017-02-09 13:07:01
    已采纳

    setTimeout 这个是获取时间,并不是改变时间,应该是setInterval("ch_n()",1000);你这个是把n减1之后直接到新网页输出了~~~你这个问题不止这一个

    慕粉1881...

    setTimeout我写在函数内是为了1秒后重新调用函数,它是个一次性的计时器,用完失效,再次调用函数又会生效一次(这个用法是可以的) body中的onlaod是加载完body就调用函数 应该是这两个出的问题,具体问题出在哪就不知道了。 对于你的回答同样感谢^^4的确是被输出在新网页了。 但是我又换了种方法重写了代码,可以运行了。

    2017-02-09 20:31:27

    共 1 条回复 >

  • 慕粉188111111
    2017-02-09 20:33:05

    <body>

      <h1>操作成功</h1>

      <strong id="num">5</strong>秒后回到主页

      <a href="#" onclick="go_b()">返回</a>

     

    <script type="text/javascript">  

    var n=parseInt(document.getElementById("num").innerHTML);

    function ch_n(){

        document.getElementById("num").innerHTML=n;

        n-=1;

        if(n==0){

            clearInterval(i);

            history.go(-1);

        }

    }

    var i=setInterval(ch_n,1000);

    function go_b(){

        history.go(-1); 

    }

     </script> 

    </body>


JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题