为了账号安全,请及时绑定邮箱和手机立即绑定

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

<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 回答

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

0 回复 有任何疑惑可以回复我~
#1

慕粉188111111 提问者

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

<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>


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468061    人
  • 解答问题       21891    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信