zoukankan      html  css  js  c++  java
  • editor多功能文本框在有些计算机上不能正常加载,解决方法,本人用的是把js调用方法放到<body></body>后面)

    IE8 中"HTML Parsing Error:Unable to modify the parent container element before the child element is closed"错误

    一、

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

    1、查看是否有未关闭的html标签,比如<table>而没有</table> (我就是这个原因) 2、是否在页面未加载完前js代码操作了body里的元素,将相关js代码移到</body>后面
    网页错误详细信息
    用 户代理: 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 UTC
    消息: 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

    二、

    它的发生,是因为某些DOM操作发生在DOM树加载完成之前,比如appendChild

    就像下面的代码:

    <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,于是问题得到解决

  • 相关阅读:
    HDOJ 2095 find your present (2)
    HDOJ 2186 悼念512汶川大地震遇难同胞——一定要记住我爱你
    九度 1337 寻找最长合法括号序列
    九度 1357 疯狂地Jobdu序列
    HDOJ 1280 前m大的数
    九度 1343 城际公路网
    九度 1347 孤岛连通工程
    HDOJ 2151 Worm
    九度 1342 寻找最长合法括号序列II
    九度 1346 会员积分排序
  • 原文地址:https://www.cnblogs.com/mybk2014/p/4629977.html
Copyright © 2011-2022 走看看