IE8 中"HTML Parsing Error:Unable to modify the p...

1、javascript

又涨见识了 IE8报下面错误,并且是个人机器不报,同事的机器报,试了4台,两个报,两个不报,IE版本都同样,没想明白 解决:html

一、查看是否有未关闭的html标签,好比<table>而没有</table> (我就是这个缘由) 二、是否在页面未加载完前js代码操做了body里的元素,将相关js代码移到</body>后面java

网页错误详细信息app

用 户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) 时间戳: Wed, 14 Apr 2010 08:33:56 UTCide

消息: HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917) 行: 0 字符: 0 代码: 0 URI:测试

http://support.microsoft.com/kb/927917代理

2、htm

它的发生,是由于某些DOM操做发生在DOM树加载完成以前,好比appendChildblog

就像下面的代码:ip

<html> <head> </head> <body> <div> <script type="text/javascript"> alert(document.readyState); var oDiv = document.createElement("DIV"); oDiv.innerHTML = 'test odiv test odiv'; document.body.appendChild(oDiv); </script> </div> </body> </html>

当解析到DIV时就开始在BODY上appendChild,而这个时候BODY是尚未彻底就绪的(It is not fully loaded),文档结构仍在loading和interactive状态之间,因而,便会获得上述错误。固然,该错误目前已确切知道的会存在于IE6和 IE7两个版本中(低于IE6的未进行测试),在IE8中将会获得一个HTML解析错误:HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)

1.要解决这个问题,能够进行document.readyState状态判断,当它为complete时再进行相应的操做,或者给script标签加上defer属性(该属性在IE8中已不获支持)。

2.或者

js中加入了 setTimeout("XXXX()",1000);,使其得到足够的加载时间后执行目标(XXXX)的function,因而问题获得解决

来源:http://blog.163.com/xiao_mege/blog/static/72942753201102491443802/

相关文章
相关标签/搜索