Javascript setinterval 的时间不工作

Javascript setinterval's time not working

以下代码在:

<script type="text/javascript">

function a() {
    document.write("bob ");
}

setInterval("a()", 1000);

</script>

应该在浏览器上输出 1 bob, printed, every second.

我用的是firefox,它只打印一次,什么也没有.... 任何人有任何想法为什么?也许我错过了什么? ec = now.getSeconds(); document.write(小时+':'+分钟+':'+秒+"
"); }

UPDATE EDIT:

我对这段代码有同样的问题:

<script type="text/javascript">
function printtime () {
    var now = new Date();
    var hours = now.getHours();
    var mins = now.getMinutes();
    var sec = now.getSeconds();
    document.write(hours+':'+mins+':'+sec+"<br />");
}

setInterval("printtime()", 1000);
</script>

它应该在前一个下在浏览器上打印时间,每秒一次....但它不会比第一个打印得更远..

function a() {
    console.log("bob ");
}

setInterval(a, 1000);
*{ background-color: yellow; }

在主要 HTML 解析完成后使用 document.write 会完全清除页面并将其替换为您输出的内容。在 Firefox 上,这会清除您的计时器,因此它会在仅触发一次并清除页面后停止。 (Chrome 不是这样,它保留了 a 函数,因此 your original code 适用于 Chrome,但不适用于 Firefox。)

如果您只是将新元素输出到页面,那么您所拥有的有效:

function a() {
  var p = document.createElement("p");
  p.appendChild(
    document.createTextNode("bob")
  );
  document.body.appendChild(p);
}

setInterval("a()", 1000);

但是,最好不要使用带setIntervalsetTimeout的字符串;只需参考函数即可:

setInterval(a, 1000);

function a() {
  var p = document.createElement("p");
  p.appendChild(
    document.createTextNode("bob")
  );
  document.body.appendChild(p);
}

setInterval(a, 1000);

或者,如果您只想将文本重复添加到现有元素的末尾:

function a() {
  var p = document.getElementById("target");
  p.appendChild(
    document.createTextNode("bob ")
  );
}

setInterval(a, 1000);
<p id="target"></p>

给你;不要在 setInterval();.

中的函数后添加引号或括号

<script type="text/javascript">

function a() {
    document.write("bob ");
}

setInterval(a, 1000);

</script>

另外值得注意的是 document.write(); 将删除加载的网页,包括您的网页。