慕粉3736843
2016-08-05 17:12
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>浏览器对象</title>
</head>
<body>
<script type="text/javascript">
ctime();
var num=5;
function ctime()
{
document.getElementById("b").innerHTML=num;
num=num-1;
setTimeout("ctime()",1000);
if(num==0)
{
window.location.href="http://www.imooc.com"
}
}
</script>
<span id="b">5</span>秒后回到主页 <a href=javascript:window.history.back()>返回</a>
</body>
</html>打开界面后,时间不会变,也不会有任何动作,但是使用一个按键来调用函数时,时间就会改变
啊,我那时好像看漏了没仔细看,不好意思。你错的地方应该是函数ctine里document.getElementById("b").innerHTML=num;这句,因为如果你在script里使用ctime();调用的话因为它下面的span还没加载,所以得不到对象,出现错误。两种解决方法:
第一加上window.onload = function(){}调用
var num=5;
function ctime()
{
document.getElementById("b").innerHTML=num;
num=num-1;
if(num==0)
{
window.location.href="http://www.imooc.com"
}
setTimeout("ctime()",1000);
}
window.onload= function(){
ctime();
}
第二把span放前面
<span id="b">5</span>秒后回到主页 <a href=javascript:window.history.back()>返回</a>
<script type="text/javascript">
var num=5;
function ctime()
{
document.getElementById("b").innerHTML=num;
num=num-1;
if(num==0)
{
window.location.href="http://www.imooc.com"
}
setTimeout("ctime()",1000);
}
ctime();
</script>
你没调用函数,函数不执行,当然什么都不会发生。你现在只是做了声明而已,ctime();才是调用,在这里可以用setInterval()来调用
JavaScript进阶篇
469067 学习 · 22582 问题
相似问题