今天在用setInterval的时候 发现一个小问题 是当setInterval 调用的函数中执行了document.write()的时候
这个函数只能被调用一次 但是chrome是没问题 只有ie会出现这个情况
var i = 0;
function aa(){
i++;
document.write(i);
}
setInterval("aa()", 42);
但是调用的函数中如果没有document.write就不会出现这个问题 var i = 0;
function aa(){
i++;
alert(i);
}
setInterval("aa()", 42);
也就是说这个问题的根本是在document.write这里 而不是函数setInterval的问题
后来经过查找发现确实是document.write的问题
因为document.write()会产生一个新的文档,并在新的文档中写入内容.而新的文档中没有setInterval()脚本了。
<body>
document.write()会产生一个新的文档,并在新的文档中写入内容.而新的文档中没有setInterval()脚本了。
</body>
<script>
var i = 0;
function aa(){
i++;
document.write(i);
}
setInterval("aa()", 42);
</script>但是在chrome浏览器中执行是正常的 并且chrome浏览器中也产生了一个新的文档 我想应该是chrome浏览器产生新的文档时将原文档的一些脚本也会加载进来吧
这里没有做研究 忘有知道的能解答一些
本文探讨了在使用setInterval函数时,若函数内部执行了document.write操作,导致函数只能被调用一次的问题。主要原因是document.write在IE浏览器中会创建新的文档,从而移除了原有的setInterval脚本。文章分析了这一现象背后的原理,并指出Chrome浏览器中不存在此问题,因为其可能在创建新文档时保留了原有脚本。
227

被折叠的 条评论
为什么被折叠?



