UEditor 粘貼表格時報錯致使沒法粘貼的解決方法

在UEditor一些版本中,好比個人版本爲1.3.6或者說是1.4之前的版本,若是粘貼Excell中的內容或者粘貼表格之類的到編輯器,會粘貼不進去,打開控制檯發現JS報錯了。css

在ueditor.all.js:3048行報以下錯誤:node

Uncaught TypeMismatchError: Failed to execute 'removeAttributeNode' on 'Element': The node provided is invalid.編輯器

或者ide

Uncaught TypeError: Failed to execute 'removeAttributeNode' on 'Element': parameter 1 is not of type 'Attr'.spa

看這個錯誤應該就能知道致使錯誤的緣由多是調用 removeAttributeNode的對象爲null或者傳進 removeAttributeNode 中的參數爲null。code

定位到這行代碼看一下:對象

removeAttributes:function (node, attrNames) {
        attrNames = utils.isArray(attrNames) ? attrNames : utils.trim(attrNames).replace(/[ ]{2,}/g,' ').split(' ');
        for (var i = 0, ci; ci = attrNames[i++];) {
            ci = attrFix[ci] || ci;
            switch (ci) {
                case 'className':
                    node[ci] = '';
                    break;
                case 'style':
                    node.style.cssText = '';
                    //!browser.ie && node.removeAttributeNode(node.getAttributeNode('style'))
                    if (node.getAttributeNode('style') != null) {
                        !browser.ie && node.removeAttributeNode(node.getAttributeNode('style'))
                    }
            }
            node.removeAttribute(ci);
        }
    },

致使錯誤的緣由就是3048行 node.getAttributeNode('style') 返回null,而後傳入了 removeAttributeNode 裏。解決的方法是加入node.getAttributeNode('style') 爲 null 的判斷,如上代碼所示。blog

相關文章
相關標籤/搜索