2013-02-13 40 views
0

好的。所以我正在學習如何製作一個時鐘。去W3schools檢查代碼。現在我想從軍事時間等等中解決它。但我似乎無法讓代碼工作。當我把代碼放在一個JS文件中。我沒有得到代碼運行。如果我把它嵌入HTML中,它可以工作嗎?我在這裏做錯了什麼?JavaScript時鐘僅適用於嵌入代碼?怎麼來的?

function startTime() 
{ 
var today=new Date(); 
var h=today.getHours(); 
var m=today.getMinutes(); 
var s=today.getSeconds(); 
// add a zero in front of numbers<10 
m=checkTime(m); 
s=checkTime(s); 
document.getElementById('txt').innerHTML=h+":"+m+":"+s; 
t=setTimeout(function(){startTime()},500); 
} 

function checkTime(i) 
{ 
if (i<10) 
{ 
i="0" + i; 
    } 
return i; 
} 

HTML是如下

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 

<title>City Clock</title> 
<link rel="stylesheet" href="clock.css"> 
</head> 

<body> 
<h1> Austen's Clock</h1> 



</head> 

<body onload="startTime()"> 
<div id="txt"></div> 
</body> 
</html> 


<script type="text/javascript" src="clock.js"></script> 
</body> 
</html> 
+0

'<腳本類型= 「文本/ JavaScript的」 SRC = 「clock.js」>'當客戶端解釋應該在'head' – Aesthete 2013-02-13 07:35:13

+0

'startTime'是未知的' 'body'的onload'屬性。 – Zeta 2013-02-13 07:35:41

+0

@Zeta我不認爲重要 - AFAIK內聯腳本被包裝在一個解釋的'eval'塊中,該塊只是在該塊被實際調用時定義的那個時間傳遞該字符串。 – Alnitak 2013-02-13 08:02:51

回答

0

移動<script type="text/javascript" src="clock.js"></script>到文檔的頭部

OR

重寫你的代碼是這樣

window.onload = function startTime() {..... 
+0

這不是真的回答「我在這裏做錯了什麼?」。這是一個有效的解決方案,但OP應該知道_Why_它的工作原理。 – Zeta 2013-02-13 07:36:28

+0

啊啊,謝謝。像魅力一樣工作。 – 2013-02-13 21:20:57

0

你inclu已經012d標籤在第一次關閉</html>標籤後 - 應該沒有任何其他元素之後,所以他們應該被忽略。

移動它,使它成爲</body>標記中的最後一個東西。

[FWIW,你代碼實際上確實對我工作在Chrome和Firefox的MacOS X上使用Chrome最少,<script>元素被自動</body>標籤內瀏覽器移動。]

0

回顧以前的答覆:

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 

<title>City Clock</title> 
<link rel="stylesheet" href="clock.css"> 
<script type="text/javascript" src="clock.js"></script> 
</head> 

<body onload="startTime()"> 

<h1> Austen's Clock</h1> 
<div id="txt"></div> 

</body> 
</html> 
相關問題