不鸣则已

海阔凭鱼跃,天高任鸟飞!

首页 新随笔 联系 订阅 管理
 1 <script type="text/javascript">
 2     function textChange(id, fn) {
 3         var textarea = document.getElementById(id);
 4         if ("\v" == "v") {
 5             textarea.onpropertychange = fn;
 6         }
 7         else {
 8             textarea.addEventListener("input", fn, false);
 9         }
10     }
11 
12     function SetTxt2() { 
13         document.getElementById("txt2").value = document.getElementById("txt1").value;
14     }
15 
16     function SetTxt1() {
17         document.getElementById("txt1").value = document.getElementById("txt2").value;
18     }
19     onload = function () {
20         textChange("txt1", SetTxt2);
21 
22         textChange("txt2", SetTxt1);
23     }
24 </script>
25 <input type="text" name="" value="" id="txt1" /><br />
26 <input type="text" name="" value="" id="txt2" />

这段代码火狐和谷歌Chrome中运行是没有问题的,但是在IE8中运行有问题

报错:

出错的原因是因为:火狐和谷歌Chrome对于内存垃圾的处理方式是标记删除,但是IE8部分使用了标记删除,IE8对于DOM的内存垃圾收集方式依旧使用的是引用计数,会出现死循环的问题。IE9修复了这一问题!

posted on 2014-04-01 09:18  唐群  阅读(189)  评论(0编辑  收藏  举报