第2257天:umeditor“清除格式”报错

最近在使用 umeditor 开发时发现点击“清除格式”时会报错:

Uncaught TypeMismatchError: Failed to execute ‘removeAttributeNode’ on ‘Element’: The 1st argument provided is either null, or an invalid Attr object.

解决方法,打开 _src/core/domUtils.js,查到以下代码:

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

加一个 if 判断:

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

如果是直接使用打包后的 min.js,找到:

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=”" 后面的逗号改成分号。

RSS

上一篇:

下一篇:

发表评论

电子邮件地址不会被公开。 必填项已用*标注