js srtInterval 调用函数中document.write的问题

本文探讨了在使用setInterval函数时,若函数内部执行了document.write操作,导致函数只能被调用一次的问题。主要原因是document.write在IE浏览器中会创建新的文档,从而移除了原有的setInterval脚本。文章分析了这一现象背后的原理,并指出Chrome浏览器中不存在此问题,因为其可能在创建新文档时保留了原有脚本。

今天在用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浏览器产生新的文档时将原文档的一些脚本也会加载进来吧

这里没有做研究  忘有知道的能解答一些  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值