Firefox vs. IE:innerHTML 处理

Firefox vs. IE: innerHTML handling

提问人:Steve M 提问时间:8/31/2008 更新时间:9/17/2008 访问量:3788

问:

经过几个小时的调试,在我看来,在FireFox中,DOM的innerHTML反映了标记中的实际内容,但在IE中,innerHTML反映了标记中的内容以及用户或动态(即通过Javascript)所做的任何更改。

有没有人发现这是真的?有什么有趣的解决方法可以确保两者的行为方式相同吗?

JavaScript Internet-Explorer Firefox DOM

评论


答:

11赞 Pat 8/31/2008 #1

我使用jQuery的.html(在浏览器之间获得一致的结果。

评论

0赞 merryprankster 9/30/2011
问题是 jQuery.html( 不会产生一致的结果。引用jQuery文档的相关部分:“此方法使用浏览器的innerHTML属性。某些浏览器可能不会返回与原始文档中的 HTML 源完全复制的 HTML。例如,如果属性值仅包含字母数字字符,则 Internet Explorer 有时会省略属性值周围的引号。
9赞 J Wynia 8/31/2008 #2

我同意帕特的观点。在游戏的这一点上,考虑到可用的 Javascript 框架,编写自己的代码来处理跨浏览器兼容性没有多大意义。几乎任何口味都有一个框架(有些非常小),他们专注于真正抽象出浏览器之间的所有差异。他们正在对它进行比您可能做的更多的测试。

像jQuery或雅虎的YUI(想想一天有多少人点击雅虎Javascript,以及各种各样的浏览器)比你或我想出的任何片段都经过了更多的道路测试。

1赞 Ross Morrissey 9/17/2008 #3

使用 prototype 和 $(“thisid”) 语法而不是 document.getElementById(“thisid”) 可能会为您解决问题。它对我有用。

2赞 matt lohkamp 9/17/2008 #4

使用一个好的库是解决浏览器不一致问题的好方法,而jQuery是我通常推荐的 - 如果你在改变表单中的元素时遇到问题,jQuery拥有一些非常有用的插件,专门针对表单操作和评估。