发布于 2014-11-02 14:16:26 | 2154 次阅读 | 评论: 2 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

UMeditor 在线HTML编辑器

UMeditor,简称UM,是为满足广大门户网站对于简单发帖框,或者回复框需求所定制的在线富文本编辑器。 UM的主要特点就是容量和加载速度上的改变,全版本的代码量为125k,而且放弃了使用传统的iframe模式,采用了div的加载方式, 以达到更快的加载速度和零加载失败率。现在UM的第一个使用者是百度贴吧,贴吧每天几亿的pv是对UM各种指标的最好测试平台。


本文为大家讲解的是umeditor在CHROME下清除格式报错:removeAttributeNode,感兴趣的同学参考下。

最近在使用 umeditor 开发时发现点击“清除格式”时会报错。查找了下,发现是没有判断 style 对象节点是不是为空 null,就直接移除style造成的错误。

错误提示:
Uncaught TypeMismatchError: Failed to  execute 'removeAttributeNode' on 'Element': The node provided is invalid.

具体位置为:umeditor.min.js文件第30行
找到:

switch(d){case "className":a[d]="";break;case "style":a.style.cssText="",!m.ie&&a.removeAttributeNode(a.getAttributeNode("style"))}


改成:

switch(d){case "className":a[d]="";break;case "style":a.style.cssText="";if(a.getAttributeNode("style")!==null){!m.ie&&a.removeAttributeNode(a.getAttributeNode("style"))}}


注意 a.style.cssText=”" 后面的逗号改成分号。


如果是开发模式,打开 _src/core/domUtils.js,查到以下代码:

switch (ci) {
    case 'className':
        node[ci] = '';
        break;
    case 'style':
        node.style.cssText = '';
        !browser.ie && node.removeAttributeNode(node.getAttributeNode('style'))
}

改成:

switch (ci) {
    case 'className':
        node[ci] = '';
        break;
    case 'style':
        node.style.cssText = '';
        if (node.getAttributeNode('style') !== null) { // 加判断
            !browser.ie && node.removeAttributeNode(node.getAttributeNode('style'))
        }
}

 



最新网友评论  共有(2)条评论 发布评论 返回顶部
qthbxa 发布于2014-11-12 01:28:18
爱死你了
支持(0)  反对(0)  回复
PHPERZ网友 发布于2016-08-02 10:39:10
没有用呢
支持(0)  反对(0)  回复

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务