提问人:Steve M 提问时间:8/31/2008 更新时间:9/17/2008 访问量:3788
Firefox vs. IE:innerHTML 处理
Firefox vs. IE: innerHTML handling
问:
经过几个小时的调试,在我看来,在FireFox中,DOM的innerHTML反映了标记中的实际内容,但在IE中,innerHTML反映了标记中的内容以及用户或动态(即通过Javascript)所做的任何更改。
有没有人发现这是真的?有什么有趣的解决方法可以确保两者的行为方式相同吗?
答:
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拥有一些非常有用的插件,专门针对表单操作和评估。
评论