关于浏览器的一个问题

在一个很多代码的程序里出现过类似如下的问题(这里我就核心内容举了个例子):

———————–test.html———————————–

<form id="f" action="" method="get" >
 <input type="submit">
</form>
<script>
 function check(){
  alert("mmm");
  return false;
 }
 document.getElementById("f").onsubmit=check;
(function (){
    var footer = ‘<hr><div>’;
    footer += ‘<a href="http://sina.com.cn">sina</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;’;
    footer += ‘<a href=http://163.com>163</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;’;
    footer += ‘</div>’;
 document.body.innerHTML += footer;
})();
</script>

—————————————————————————-

就这段代码,在ie中点击按钮,有弹出的alert;在firfox中就没有弹出的alert;

经测试,问题就出在document.body.innerHTML上,不知道为什么;

做如下修改就可以了:

——————————test2.html——————————-

<form id="f" action="" method="get" >
 <input type="submit">
</form>
<script>
 function check(){
  alert("mmm");
  return false;
 }
 document.getElementById("f").onsubmit=check;
(function (){
    var footer = ”;
    footer += ‘<a href="http://sina.com.cn/">sina</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;’;
    footer += ‘<a href="http://163.com/">163</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;’;
    var div = document.createElement("div");
    div.innerHTML = footer;
    document.body.appendChild(div);

})();
</script>

————————————————————————–

我在这里写这篇日志,不完全是想说明这个问题;因为我在很长的代码中猜测、尝试了很多种办法,但怎么也没想到在这里出现了问题;最终还是通过使用二分法来删除一些无关的代码来缩小问题出现的范围才发现了,我一直很强调也很重视这种方法,但使用的时候总是根据经验做一些无谓的尝试,所以我在这里再一次提醒自己,也提醒同行们,调试代码时一定要重视二分法的使用。

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据