`
周凡杨
  • 浏览: 236601 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多

 

错误: 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
:文件已完全加载,代表加载成功。

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    IE8 下的Js错误HTML Parsing Error…

    网页错误详细信息 用户代理: Mozilla/4.0 (compatible...消息: HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)行: 0字符: 0代码: 0 今天调试一段J

    Parsing Techniques: A Practical Guide (Monographs in Computer Science)

    Parsing, also referred to as syntax analysis, has been and continues to be an essential part of computer science and linguistics. Parsing techniques have grown considerably in importance, both in ...

    Parsing Techniques:A Practical Guide

    ### Parsing Techniques:A Practical Guide — 关键知识点概览 #### 一、引言与背景介绍 《Parsing Techniques:A Practical Guide》是一本详细介绍解析技术的著作,由Dick Grune和Ceriel J. Jacobs共同撰写。该书...

    Parsing Techniques - A Practical Guide

    http://en.wikipedia.org/wiki/Parsing 这个页面上的链接下载的。

    ParsingTechniques--a practical guide.pdf

    ### Parsing Techniques: A Practical Guide #### 核心知识点解析 **1. 解析技术概览** - **定义与重要性:** 解析技术(Parsing)是计算机科学中的一个重要领域,主要关注如何将输入字符串转换为有意义的数据...

    vue总是报Error Cannot find module 解决办法.网上的都试了不管用,用这招成功

    在Vue.js开发过程中,我们可能会遇到“Error: Cannot find module”这样的错误,这通常是由于模块导入路径不正确、npm包未安装或者环境配置问题导致的。以下是一些常见的解决步骤和详细解释,希望能帮助到遇到此类...

    vue樱花漫天效果文件

    在“vue樱花漫天效果文件”这个项目中,我们主要关注的是如何使用Vue.js来实现一种动态视觉效果——樱花飘落的场景。这通常涉及到Vue的基本组件创建、动画处理以及图像渲染等方面的知识点。 首先,我们要理解Vue...

    Python_field_calculator

    根据给定文件的内容,我们今天要详细探讨的知识点是ArcGIS中的Python字段计算器(Python field calculator)。这个工具对于使用ArcGIS10版本的用户尤其重要,因为它提供了字段计算器只支持Python语言的解决方案,极...

    linters:Tinkoff TSLint,Stylelint和Prettier棉短绒配置

    这包括: 配置和规则配置和规则(不建议使用) 配置配置目录 Parsing error: "parserOptions.project" has been set for @typescript-eslint/parser. TSLint的自定义规则tinkoff-angular-member-ordering tinkoff-...

    Knockout应用开发指南

    Knockout是一个轻量级的UI类库,它采用了MVVM(Model-View-ViewModel)模式,这是一种设计模式,可以将应用程序的用户界面(UI)从业务逻辑中分离出来,通过数据绑定实现用户界面的自动化更新。使用Knockout,开发者...

    Data Parsing Error(解决方案).md

    数据解析错误是开发过程中常见的问题,它通常发生在尝试将输入数据转换为程序内部使用的数据结构时。解析错误可能是由于输入数据格式不正确、编码不兼容、数据结构问题或者代码实现上的错误等原因造成的。以下是一些...

    Activiti发布流程报错org.activiti.engine.ActivitiException: Error parsing XML

    郁闷啊,有时候不得不承认,无论是什么事,曾经是好的,到后边未必还是好的,不要拿曾经的种种来判断今天的结果, 前景:之前本地用jeecg(1.7版本)设计流程、发布流程、修改流程,所有的操作都是项目有汉字启动的,...

    Keil+C编译器常见警告与错误信息的解决方法[归类].pdf

    * C51 FATAL-ERROR –ACTION &lt;current action&gt; LINE : &lt;line in which the error is detected&gt; ERROR : &lt;corresponding error message&gt; * C51 FATAL-ERROR –ACTION &lt;current action&gt; FILE : &lt;file in which the ...

    spring配置文件解析失败报”cvc-elt.1: 找不到元素 &#39;&#39;beans&#39;&#39; 的声明”异常解决

    在Spring框架中,配置文件是核心组件之一,它定义了bean的实例化、依赖注入以及其他的设置。当遇到“cvc-elt.1: 找不到元素 'beans' 的声明”这种异常时,通常意味着Spring在尝试解析XML配置文件时遇到了问题。这个...

    spring boot报错Error parsing HTTP request header Note:further occurrences of HTTP header parsing error

    2020-02-19 10:34:46.901 INFO 5920 --- [nio-8080-exec-1] o.apache.coyote.http11.Http11Processor : Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will be ...

    Configuration Parsing Error(处理方案).md

    print("Configuration Parsing Error:", e) # 打印错误信息,帮助定位问题所在 ``` 上述代码段展示了如何捕获解析异常并打印错误信息,这有助于用户快速定位问题。 对于处理更为复杂的配置文件,比如那些使用了...

    FlexGraphics_V_1.79_D4-XE10.2_Downloadly.ir

    infinite loop (due to an error in ListScanEx in the method FlexUtils). - FIX: The value of some string flex-properties that began with a parenthese or curly bracket had no apostrophe at the end; ...

    Foobar的CUE文件生成插件

    用于Foobar2000,基本任何版本都可以使用。可以通过选择音乐来自动生成Cue文件

    missingsemicolons:帮助定位缺少分号的产生输出的代码行。-matlab开发

    在 'linevals' 中返回一个结构,其中包含行号和可能缺少终端分号的候选行的冒犯字符串。 以通常不会在命令行产生输出的关键字(例如,'if'、'return'、'continue' 等)开头的行将被跳过。 TARGETFILES:输入可以是...

Global site tag (gtag.js) - Google Analytics