[Bug描述]Windows XP IE8的某些版本下页面只显示一部分,其余为空白。IE左下角有惊叹号报错标志,点开后显示字符如下:
HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917) Line: 0 Char: 0 Code: 0 URI: ……
*上有人说IE官方给出了由于HTML加载未完成时用JS插入新的HTML标签可能会被浏览器认为父标签未关闭而报错停止加载。真是但疼菊紧。。。
不过后来IE8应该是有修复了,因为只在某些机器上发现这个问题。
不过我今天提出来是因为我碰到这个bug的时候并非由于页面中插入了某段有.appendNode之类的JS引起,而是因为我们为了页面在IE8中也Responsive,也就是让IE8也支持media query,我们使用了一个Respond.js的plugin: https://github.com/scottjehl/Respond
对于碰到这样的情况,解决方法很简单,把引用Respond.js的script标签放到页面最底部就不会有这问题了。
实际上一般JS的引用都应该放在页面底部,可以提升页面的performance,只有碰到像Mordernizr这样必须放头部的例外。