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

  • 相关阅读:
    正则匹配整数或小数
    文本超出点点点
    订单页面布局
    数据库连接池 maxActive,maxIdle,maxWait参数
    dll静态调用和动态调用
    Could not open JDBC Connection for transaction; nested exception is com.alibaba.druid.pool.GetConnection
    sql server调优
    AdPlus
    010 Editor
    WinDBG相关
  • 原文地址:https://www.cnblogs.com/mybk2014/p/4629977.html
Copyright © 2011-2022 走看看