其实是这个道理,在页面的print全部完毕之后,在进行print,也就是document.write()就是新开一个page进行输出。不能跟在当前页进行输出。这里你可以仔细看ie的后退按钮从灰变成了彩色,就说明有了一个历史页。而这个新的页面里面有的只是你document.wirte()的2
1是随第一次页面载入时输出的,2是在一个新的page里面输出的,这个时候页面里只剩下2了,js脚本已经全部没有了,而这个timeout的计数器还是存在的,他还是要去调这个函数,所以就出错了,解决办法是通过修改对象的内容达到你的目的。
---------------------------------------------------------------------
<Script>
var i=0;
window.onload = aa;
function aa() {
document.all.d.innerText=i++;
  setTimeout("aa()",1000)
}
</script>
<div id="d"></div>

解决方案 »

  1.   

    希望能理解,应该说的很明白了。应该对初学者有帮助setTimeout()的作用域是window,这里只是缩写!
    写全的话,应该是window.setTimeout()
    从这里就可以看到他是window对象的一个方法,使其失效的办法有:
    1。关闭浏览器窗口
    2。跳转到其他location
    3。超时过期
    4。手动调用clearTimeout()方法
      

  2.   

    非常感谢,分数一定奉上,顺便还一个问题:怎样用javascript控制几个flash文件轮番播放谢谢,可以在开贴加分。