天地一号217
2016-04-16 20:54
<!--先编写好网页布局-->
<h1> 操作成功</h1>
<b id="seconds">5</b>
<span>秒后返回主页</span>
<a href="javascript:goback();">返回</a>
<script type="text/javascript">
var num=document.getElementById("seconds").innerHTML
//获取显示秒数的元素,通过定时器来更改秒数。
function count(){
num--;
document.getElementById("seconds").innerHTML=num;
if(num==0) { location.assign="www.imooc.com";}
}
setInterval(count(),100);
//通过window的location和history对象来控制网页的跳转。
function goback()
{
history.back();
}
哥们你这代码有几个问题:
1、你的源码中<script>标签没有闭合;
2、你的代码逻辑有问题,页面加载后会执行计时器,计时器会调用count函数,每过一秒页面调用一次,执行一次,而每次执行时num都会减1,所以会导致count一直减下去,然后再去判断num的值,你应该在调用count函数开始的时候就判断num是否为0,否则进行后面的操作,页面加载流程要搞清楚。附上改过的代码,可以运行。
3、你没有认真看答案啊,都说了location.assign="http://www.imooc.com"这种写法是错误的,要写成location.assign(http://www.imooc.com)才对!!!
1、 setInterval("fun()",1000);//全局作用域下正常执行
setInterval(fun(),1000); //调用函数正常,setInterval调用出错
setInterval(fun,1000); //正确
2、打开新界面同2L,就像你用一个函数,xxx.(),是在()里面传参数,而不是写成xxx = ();
setInterval("count()",1000) 或者 setInterval(count,1000)
location.assign是函数,不能直接赋值 而应该代入实参
location.assign("http://www.imooc.com")
把这句setInterval(count(),100);
改成:setInterval(count,1000);或setInterval("count()",1000);试试
原因:之前介绍setInterval那一节提到:
“交互时间:以毫秒计(1s=1000ms)。
调用函数格式(假设有一个clock()函数):
setInterval("clock()",1000)
或setInterval(clock,1000) ”
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题