日期:2014-05-16  浏览次数:20394 次

求助,为什么下面的javascript代码,不能每个一段时间刷新时间.
function method(){
var d = new Date();
document.write(d.toLocaleString());
}

window.onload = function(){
window.setInterval("method()",1000);
};
本人在火狐,opera ,ie都试了,都不行求教

------解决方案--------------------
document.write()一般只在页面加载完成之前使用。
当页面加载完成之后,就不要用document.write()了
再用document.write()就是重新创建一个新的页面。
这时应该用.innerHTML或.innerText。

------解决方案--------------------
改成appendChild即可,如下代码:

   function addElem(){
   var d = new Date();
   var div = document.createElement("div");
   div.innerHTML = d.toLocaleDateString();
   document.body.appendChild(div);
   }
   window.onload = function(){
   window.setInterval(addElem,1000);
   }

------解决方案--------------------
整个文档的加载是一个 流
document。write 直接作用于这个流
在onload之后 流被关闭了

当你再次调用 write则开启了新的流
那么整个document被重写 并重新渲染

这个时候 你整个页面 只有 d.toLocaleString() 的值 
以前的脚本标签什么的全没了