Javascript 对setInterval有疑问

Javascript 对setInterval有疑问,javascript,setinterval,Javascript,Setinterval,我对javascript中的setInterval()函数有一个问题,它将在我的页面上打印一次,并且不会继续这样做。我想知道这可能是浏览器问题还是我做错了什么 function printTime() { var now = new Date(); var hours = now.getHours(); var minutes = now.getMinutes(); var seconds = now.getSeconds(); document.writ

我对javascript中的setInterval()函数有一个问题,它将在我的页面上打印一次,并且不会继续这样做。我想知道这可能是浏览器问题还是我做错了什么

function printTime() {
    var now = new Date();
    var hours = now.getHours();
    var minutes = now.getMinutes();
    var seconds = now.getSeconds();
    document.write(hours + ":" + minutes + ":" + seconds + "<br/>");
}

setInterval("printTime()", 1000);
函数printTime(){
var now=新日期();
var hours=now.getHours();
var minutes=now.getMinutes();
var seconds=now.getSeconds();
写(小时+“:“+分钟+”:“+秒+”
); } setInterval(“printTime()”,1000);
除了使用
“functionName()”
而不是仅使用
functionName
的不良做法外,如果间隔超过页面加载时间,代码将永远无法工作

document.write将在加载后擦除页面

这里有一个更好的解决方案:

<div id="time"></div>
<script>
function pad(str) { return ("0"+str).slice(-2)}
function printTime() {
  var now = new Date();
  var hours = now.getHours();
  var minutes = now.getMinutes();
  var seconds = now.getSeconds();
  document.getElementById("time").innerHTML+=pad(hours) + ":" + pad(minutes) + ":" + pad(seconds) + "<br/>";
}

setInterval(printTime, 1000);
</script>

功能板(str){return(“0”+str).slice(-2)}
函数printTime(){
var now=新日期();
var hours=now.getHours();
var minutes=now.getMinutes();
var seconds=now.getSeconds();
document.getElementById(“time”).innerHTML+=pad(小时)+“:”+pad(分钟)+“:”+pad(秒)+“
”; } 设置间隔(打印时间,1000);
尝试设置间隔(打印时间,1000);虽然您的也应该工作,因为printTime似乎是全球性的?您使用的浏览器是什么?我刚刚在Chrome上测试了你的代码,效果很好。我用的是Firefox,我试过IE。