<!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()来调用