经过数小时的调试,我发现在FireFox中,DOM的innerHTML反映了标记中的实际内容,但在IE中,innerHTML则反映标记中的内容,加上用户或动态(即通过Javascript)所做的任何更改。
有其他人发现这是真的吗?有什么有趣的变通办法可以确保两者的行为相同吗?
经过数小时的调试,我发现在FireFox中,DOM的innerHTML反映了标记中的实际内容,但在IE中,innerHTML则反映标记中的内容,加上用户或动态(即通过Javascript)所做的任何更改。
有其他人发现这是真的吗?有什么有趣的变通办法可以确保两者的行为相同吗?
我同意帕特的观点。在游戏的这一点上,考虑到可用的Javascript框架,编写自己的代码来处理跨浏览器兼容性并没有多大意义。有一个几乎可以满足任何口味的框架(有些非常小),他们专注于真正抽象出浏览器之间的所有差异。他们正在做比你可能做的更多的测试。
像jQuery或雅虎的YUI(想想一天有多少人使用雅虎Javascript和各种浏览器)这样的东西比你或我想出的任何片段都要经过更多的路试。
我使用jQuery s.html()以在浏览器之间获得一致的结果。
使用一个好的库是解决浏览器不一致问题的好方法,我通常建议使用jquery。如果你在更改表单中的元素时遇到问题,jquery拥有一些非常有用的插件,专门用于表单操作和评估。
使用prototype和$(“thisid”)语法而不是document.getElementById(“thisid”)可能会对您有所帮助。这对我很有效。