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

为什么秒数不会变化,也不会跳转?求解啊。。

<!DOCTYPE html>
<html>
 <head>
  <title>浏览器对象</title>  
  <meta http-equiv="Content-Type" content="text/html; charset=gkb"/>
  <style>
      a {
         text-decoration:none;
          }
  </style>
 </head>
 <body>
  <!--先编写好网页布局-->
  <h1>操作成功</h1>
  <p id="black">
  <b id="time_num"></b>秒后回到主页<a href="javascript:GOBack()">返回</a>
  </p>
  <!--<button type="button" onclick="GO()">click</button>-->
 
  <script type="text/javascript">  
 
   //获取显示秒数的元素,通过定时器来更改秒数。

   //通过window的location和history对象来控制网页的跳转。
   function GO(){
    var number=5;
       if (number==0){
           window.location.assign("http://www.w3school.com.cn");
       }
       document.getElementById("time_num").innerHTML = number;
       number=number - 1;
       setTimeout("GO()",1000);
   }
 setTimeout("GO()",1000)
    function GoBack(){
        window.history.back();
        
    }
 </script> 
</body>
</html>


正在回答

4 回答

 在窗口中运行该程序时,该窗口一定要有历史浏览记录,否则"返回"无效果。还有就是你的27行到29行要放到31行后,要先获取 time_num这个对象,先执行num--操作,再判断num==0时候的情况。

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

慕粉3274123 提问者

谢谢你啊,一个上午啦,问题总算解决了。
2016-07-14 回复 有任何疑惑可以回复我~
#2

qq_望风灬莫回眸_03605772 回复 慕粉3274123 提问者

Don’t care!Good luck to you.I would appreciate it if you are happy.
2016-07-14 回复 有任何疑惑可以回复我~

哦哦,这样是直接读取元标签内的内容,这么写,就不用写到外面吗?

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

除了已经采纳的那个回答,你的'var number = 5;'放在函数里边能运行出来?我没试,不过最好还是放在外边吧,要不然每次执行函数都会重新给number赋值5


//刚试了一下,var number= 5放在函数里边是运行不出来结果的吧




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

慕粉3274123 提问者

嗯嗯,是的,这个我已经修改啦,其实,我有个疑问,就是把var number =5放在外面,是不是就会变成全局变量啦?
2016-07-17 回复 有任何疑惑可以回复我~
#2

TCandice 回复 慕粉3274123 提问者

是的。
2016-07-17 回复 有任何疑惑可以回复我~
#3

慕粉3274123 提问者 回复 TCandice

不是说一般不要用全局变量吗?有没方法可以使他变成局部变量,同时不影响使用呢?
2016-07-17 回复 有任何疑惑可以回复我~
#4

我是刘高兴 回复 慕粉3274123 提问者

对的,其实我写的不是var number = 5;我写的是"var num = document.getElementById("second").innerHTML;",我觉得这样更合适一些…
2016-07-17 回复 有任何疑惑可以回复我~
#5

慕粉3274123 提问者 回复 我是刘高兴

哦哦,这样是直接读取元标签内的内容,这么写,就不用写到外面吗?
2016-07-17 回复 有任何疑惑可以回复我~
#6

TCandice 回复 慕粉3274123 提问者

如果是作为局部变量,那么每次循环他都会在初始化化一次,这样你的循环就没意义了
2016-07-17 回复 有任何疑惑可以回复我~
#7

慕粉3274123 提问者 回复 TCandice

也是,明白了,谢谢你的讲解。
2016-07-17 回复 有任何疑惑可以回复我~
#8

我是刘高兴 回复 慕粉3274123 提问者

确实全局变量会占内存单元、破坏函数封装性等等等等,但这里应该不用想那么多的,以后随着知识点的加深和实际工作(工程化)后,自然而然找到办法了~(还有,主要是我现在也不知道……)
2016-07-17 回复 有任何疑惑可以回复我~
#9

慕粉3274123 提问者 回复 我是刘高兴

哈,其实我现在也一样,感觉JS的内容深究下去,很多都不懂,不知道能否找到一份实习的工作,迷茫啊。。。唉
2016-07-17 回复 有任何疑惑可以回复我~
#10

慕粉3274123 提问者 回复 我是刘高兴

比较烦恼,现在学了一些DIV跟CSS,只会做网页的样式。对于JS,感觉太多内容了,怎么都记不住,后面还要学JQ,根本不知道怎么办,太多东西要学,而且不知道要学的怎么样才有公司肯招。
2016-07-18 回复 有任何疑惑可以回复我~
#11

我是刘高兴 回复 慕粉3274123 提问者

推荐你去知乎看一些关于这方面问题的回答:) 还有,要一步步慢慢来,不能急于求成。像我大学一样浪费了多少时间啊,现在才知道后悔呀
2016-07-19 回复 有任何疑惑可以回复我~
#12

慕粉3274123 提问者 回复 我是刘高兴

后悔与不后悔都是一样的,我只是对未来的不安吧。
2016-07-19 回复 有任何疑惑可以回复我~
查看10条回复

把var number=5放到go函数前面就好了,这种写法太复杂了,建议你不要用setTimeout,用setInterval更加简洁

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

慕粉3274123 提问者

不是说不推荐使用setInterval吗?因为是周期性的,容易导致崩溃吗?
2016-07-14 回复 有任何疑惑可以回复我~
#2

TCandice 回复 慕粉3274123 提问者

这里限制了范围,所以不会崩溃
2016-07-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么秒数不会变化,也不会跳转?求解啊。。

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