将javascript时钟代码从html文件移动到外部.js文件
所以我做了一个时钟,它工作得很好。现在我想将javascript移动到一个外部文件中,并使用将javascript时钟代码从html文件移动到外部.js文件,javascript,external,clock,Javascript,External,Clock,所以我做了一个时钟,它工作得很好。现在我想将javascript移动到一个外部文件中,并使用 <SCRIPT type="text/javascript" language="JavaScript" src="clock.js" </SCRIPT> 但我不知道如何保持更新。我尝试了一些事情,结果是:页面加载时时间是静态的,每次更新都会在屏幕上打印,根本没有时间 <html> <head> <script type="text/javascrip
<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>
你错过了结尾>
应该如此
<SCRIPT type="text/javascript" language="JavaScript" src="clock.js">
</SCRIPT>
我会这样做的。将此代码放入外部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);">
请尝试setInterval,而不是setTimeout,不要在setInterval中使用引号。只需执行SetIntervalsStartTime,500。@travis,-tjameson是对的,请使用setInterval,setTimeout以给定的间隔运行函数一次,就像延迟它一样。setInterval以给定的时间间隔连续运行函数。您可以使用停止函数removeIntervalintervalId@tjameson-现有的setTimeout是超时调用的函数的最后一行,因此将其替换为setInterval将是一个非常糟糕的主意。完全从函数中删除它,并在onload处理程序中使用setInterval就可以了。@tjameson是这样做的,但它有点神经质。chrome和firefox都缺少2秒或3秒…所以只要试着删除language=JavaScript我不确定它是否应该在那里,然后打开firebug firefox的web选项卡,告诉我:clock.js自己下载吗?is my suggestion-将div元素的ID传递给startTime函数,startTime函数将被修改为将ID作为参数,以便可以轻松地应用于具有不同ID的元素的多个页面。