2011-07-12 60 views
0

因此,我製作了一個時鐘,它的工作原理非常棒。現在我想將JavaScript移動到一個外部文件並鏈接到它與將javascript時鐘代碼從html文件移動到外部.js文件

<SCRIPT type="text/javascript" language="JavaScript" src="clock.js" 
</SCRIPT> 

我不知道如何保持它更新雖然。我已經嘗試了幾件事情和結果,其中:頁面加載時的時間是靜態的,每次更新都在屏幕上打印,而且根本沒有時間。

<html> 
<head> 
<script type="text/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('startTime()',500); 
} 

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

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

相反的setTimeout的,嘗試的setInterval,並在setInterval的不使用引號(只要'setInterval(startTime,500)')。 – tjameson

+0

@travis, - tjameson是正確的,使用setInterval,setTimeout在給定的時間間隔運行一次函數,就像延遲一樣。 setInterval在給定的inteval處運行一個連續的函數。你可以使用'removeInterval(intervalId)' – dpp

+0

@tjameson來停止這個函數。現有的'setTimeout'是函數的最後一行,它會被超時調用,因此用'setInterval'代替它是一個非常糟糕的主意。完全從函數中刪除它並在'onload'處理函數中使用'setInterval'就可以了。 – nnnnnn

回答

0

以下是我該怎麼做的。把這個代碼在外部js文件:

function startTime() { 
    var today=new Date(), 
     h=today.getHours(), 
     m=today.getMinutes(), 
     s=today.getSeconds(); 

    // add a zero in front of numbers<10 
    m=checkTime(m); 
    s=checkTime(s); 
    document.getElementById('txt').innerHTML=h+":"+m+":"+s; 
} 

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

,然後在主HTML頁面,這樣的事情:

<body onload="setInterval(startTime, 500);"> 
+0

''是我的建議 - 將'div'元素的ID傳遞給'startTime'函數, turn將被修改爲將ID作爲參數,以便它可以很容易地應用於具有不同ID的元素的多個頁面。 – nnnnnn

0

你錯過了結束>

<腳本類型= 「文/ JavaScript的」 語言= 「JavaScript的」 SRC = 「clock.js」 >

所以它應該是

​​
+0

啊,這只是一個錯誤,但眼睛很好。 – travis

+0

所以只是嘗試刪除語言=「JavaScript」我不知道它應該在那裏 – genesis

+0

也打開你的螢火蟲(例如火狐)到網頁標籤,並告訴我:clock.js下載本身? – genesis

相關問題