/** * 纯文本粘贴插件 * @file * @since 1.2.6.1 */ UE.plugins['pasteplain'] = function(){ var me = this; me.setOpt({ 'pasteplain':false, 'filterTxtRules' : function(){ function transP(node){ node.tagName = 'p'; node.setStyle(); } function removeNode(node){ node.parentNode.removeChild(node,true) } return { //直接删除及其字节点内容 '-' : 'script style object iframe embed input select', 'p': {$:{}}, 'br':{$:{}}, div: function (node) { var tmpNode, p = UE.uNode.createElement('p'); while (tmpNode = node.firstChild()) { if (tmpNode.type == 'text' || !UE.dom.dtd.$block[tmpNode.tagName]) { p.appendChild(tmpNode); } else { if (p.firstChild()) { node.parentNode.insertBefore(p, node); p = UE.uNode.createElement('p'); } else { node.parentNode.insertBefore(tmpNode, node); } } } if (p.firstChild()) { node.parentNode.insertBefore(p, node); } node.parentNode.removeChild(node); }, ol: removeNode, ul: removeNode, dl:removeNode, dt:removeNode, dd:removeNode, 'li':removeNode, 'caption':transP, 'th':transP, 'tr':transP, 'h1':transP,'h2':transP,'h3':transP,'h4':transP,'h5':transP,'h6':transP, 'td':function(node){ //没有内容的td直接删掉 var txt = !!node.innerText(); if(txt){ node.parentNode.insertAfter(UE.uNode.createText('    '),node); } node.parentNode.removeChild(node,node.innerText()) } } }() }); //暂时这里支持一下老版本的属性 var pasteplain = me.options.pasteplain; /** * 启用或取消纯文本粘贴模式 * @command pasteplain * @method execCommand * @param { String } cmd 命令字符串 * @example * ```javascript * editor.queryCommandState( 'pasteplain' ); * ``` */ /** * 查询当前是否处于纯文本粘贴模式 * @command pasteplain * @method queryCommandState * @param { String } cmd 命令字符串 * @return { int } 如果处于纯文本模式,返回1,否则,返回0 * @example * ```javascript * editor.queryCommandState( 'pasteplain' ); * ``` */ me.commands['pasteplain'] = { queryCommandState: function (){ return pasteplain ? 1 : 0; }, execCommand: function (){ pasteplain = !pasteplain|0; }, notNeedUndo : 1 }; };