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

可运行代码

<!DOCTYPE html>
<html>
 <head>
  <title>浏览器对象</title> 
  <meta http-equiv="Content-Type" content="text/html; charset=gkb"/>  
 </head>
 <body>
  <!--先编写好网页布局-->
  <strong>操作成功</strong>
  <br>
 <nobr> <span id='time'>5</span> </nobr> <span>秒后回到主页</span>
 <a href='javascript:back()'>返回</a>
 
  <script type="text/javascript"> 
 
   //获取显示秒数的元素,通过定时器来更改秒数。
   var time=document.getElementById('time').innerHTML;
   setTimeout("changeTime()",1000);
   function changeTime(){
       if(time==0){
           back();
       }
       time--;
       document.getElementById('time').innerHTML=time;
       setTimeout("changeTime()",1000);
   }
  
   //通过window的location和history对象来控制网页的跳转。
   function back(){
       clearTimeout();
       window.history.back();
   }
  
 </script>
</body>
</html>

正在回答

3 回答

把你的代码敲进去试了试!!找到原因啦!

应该在函数外使用setInterval("changeTime()",1000);而不是在函数外使用setTimeout("changeTime()",1000);

因为使用setTimeout只会延迟一次,即只能从5数到4。

另外函数内不需要写计时函数。

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

隔热板认为setTimeout("changeTime()",1000);这句话应该放在外面。

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

<meta charset="utf-8"> 试试,如果是js的话,打开调试器,看看报错,是什么原因

你的这个原因可能还是函数声明和调用顺序的问题

我建议你,

先声明,后调用。把第一个settimeout放到倒计时函数的后面。因为,HTML页面是按照从上到下的顺序解析文档的。你的settimeout写在前面,而你调用的函数在它调用前根本没有声明,如果你打开调试器,因该会报错,changeTime is undefined。

个人意见试试看

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

举报

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

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

进入课程

可运行代码

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