注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

断尘居

温柔的男人像海洋。

 
 
 
 
 

日志

 
 

消息: HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)  

2012-06-12 11:55:22|  分类: JS / jQuery |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  问题描述 
                今天调了一个JS兼容性问题,记录一下:使用百度的UEditor富文本编辑器在IE8中报错,报错信息如下:


网页错误详细信息

用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
时间戳: Tue, 12 Jun 2012 02:15:57 UTC


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

  问题分析
         根据报错信息可以看出,问题是由于百度UEditor过早的修改了父容器元素导致的,也就是说UEditor的渲染必须在页面DOM加载完之后才可以进行,否则会报错。
  解决方案
        在网上查了一番找到以下两种思路:
 1、设置一个IF 判断  document.readyState == "complete"
             eg.  If(document.all && document.body.readyState=="complete"){  
                  这样,等页面加载成功以后,执行相关js,就可以避免上面的错误。
          2、土办法:设置   setTimeOut('func',3000);
                  这个就是从页面加载的时候,数三秒,再执行func,就可以。不过这个方法不精准。

         以上两种方法,第二种明显很不靠谱,忽略之。鉴于本项目集成了EXT,通过第一种方法的启发,忽然灵光一现,所以想到使用Ext.onReady()函数试试看,改之,果然奏效。
         页面会先加载,加载完之后才会对UEditor进行渲染,这样就成功的规避了这个问题。修改后,UEditor的加载会有约1秒钟的延迟,类似异步,整体用户体验还可以,问题解决的还算圆满。
  评论这张
 
阅读(2008)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018