請問老師可以直接調用一個調用其自身的函數嗎?
<!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.xianlaiwan.cn" ????????} ????} ?</script>? ????<span?id="b">5</span>秒后回到主頁?<a?href=javascript:window.history.back()>返回</a>?? </body> </html>
打開界面后,時間不會變,也不會有任何動作,但是使用一個按鍵來調用函數時,時間就會改變
2016-08-06
啊,我那時好像看漏了沒仔細看,不好意思。你錯的地方應該是函數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.xianlaiwan.cn"
? ? ? ? }
? ? ? ? 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.xianlaiwan.cn"
? ? ? ? }
? ? ? ? setTimeout("ctime()",1000);?
? ? }
? ? ? ? ctime();
?</script>?
2016-08-05
你沒調用函數,函數不執行,當然什么都不會發生。你現在只是做了聲明而已,ctime();才是調用,在這里可以用setInterval()來調用