当前位置:首页 > 开发 > Web前端 > HTML > 正文

IE 中"HTML Parsing Error:Unable to modify the parent container element before the

发表于: 2012-07-13   作者:周凡杨   来源:转载   浏览:
摘要:   错误: IE 中"HTML Parsing Error:Unable to modify the parent container element before the child element is closed"     现象: 同事之间几个IE 测试情况下,有的报这个错,有的不报。经查询资料后,可归纳以下原因。

 

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

 

 

现象: 同事之间几个IE 测试情况下,有的报这个错,有的不报。经查询资料后,可归纳以下原因。

       1. 有未关闭的 html 标签,比如 <table> 而没有 </table>

       2. 在页面未加载完前 js 代码操作了 body 里的元素,将相关 js 代码移到 </body> 后面

 

我这里的原因是进行了某些 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 状态之间,于是,便会得到上述错误

 

 

解决办法:

要解决这个问题,可以进行 document.readyState 状态判断,当它为 complete 时再进行相应的操作

 

if (document.readyState=="complete")
{

        createDiv ();

}
else
{
      document.onreadystatechange = function(){

                if (document.readyState == "complete")
                {
                        createDiv ();
                }

        }

}

function createDiv()
{
    var oDiv = document.createElement("DIV");
    oDiv.innerHTML = 'test odiv test odiv';
    document.body.appendChild(oDiv);

}
 

onreadystatechange :

 

存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。

 

readyState:

存有 XMLHttpRequest 的状态。从 0 4 发生变化。

  • 0: 请求未初始化
  • 1: 服务器连接已建立
  • 2: 请求已接收
  • 3: 请求处理中
  • 4: 请求已完成,且响应已就绪

 

0 - UNINITIALIZED XML 对象被产生,但没有任何文件被加载。
1 - LOADING
:加载程序进行中,但文件尚未开始解析。
2 - LOADED
:部分的文件已经加载且进行解析,但对象模型尚未生效。
3 - INTERACTIVE
:仅对已加载的部分文件有效,在此情况下,对象模型是有效但只读的。
4 - COMPLETED
:文件已完全加载,代表加载成功。

 

 

 

 

 

 

IE 中"HTML Parsing Error:Unable to modify the parent container element before the

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
“Hi Insus.NET, 我有参考你下午发布的一篇《jQuery.Ajax()执行WCF Service的方法》http://www.cnbl
源:http://blog.sina.com.cn/s/blog_698e6e270100m3a0.html 评: 在html中,<a>标签有个targ
From link. By Suresh Kumar Parvathaneni This document details about creation of a container e
今天写这段XML的时候总是提示这个错误。 解决方法是:在PreferenceScreen后面加一段:xmlns:android
I know there are a couple of similar questions(circular in
最近在复习JavaScript,看到关于frame框架和window窗口部分时候,部分概念有点混淆,在此记录一下。
对于HTML Element对象,存在属性 attributes,包括了对象“所有”属性,通过对其遍历,可以获取我们
问题描述:使用LR录制webservice协议的脚本,在导入wsdl时出现parsing error,详见图 问题解决:在
使用Workflow Builder打开数据库的时候报"Unable to set NLS_LANGUAGE"的错误 Error: 220: Unable t
使用Workflow Builder打开数据库的时候报"Unable to set NLS_LANGUAGE"的错误 Error: 220: Unable t
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号