UEditor内置了无格式粘贴的功能,只需要简单的配置即可。
1、修改ueditor.config.js,开启retainOnlyLabelPasted,并设置为true
2、开启pasteplain,并设为true
3、开启filterTxtRules过滤规则。
注意:filterTxtRules过滤规则默认只过滤p、div、li这几个标签。如果h1~h6这类标签,只是将标签体替换为p标签,并没有将标签体的样式去除。因而通过itextpdf生成pdf时时往往会出现异常。因而,较为完善的做法应该是将所有标签的样式都去掉(将过滤规则改为{$:{}})。
修改后的过滤规则:
'filterTxtRules' : function(){ function transP(node){ node.tagName = 'p'; node.setStyle(); } return { //直接删除及其字节点内容 '-' : 'script style object iframe embed input select', 'p': {$:{}}, 'br':{$:{}}, 'div':{$:{}}, 'li':{$:{}}, 'caption':{$:{}}, 'th':{$:{}}, 'tr':{$:{}}, 'h1':{$:{}},'h2':{$:{}},'h3':{$:{}},'h4':{$:{}},'h5':{$:{}},'h6':{$:{}}, 'td':function(node){ //没有内容的td直接删掉 var txt = !!node.innerText(); if(txt){ node.parentNode.insertAfter(UE.uNode.createText(' '),node); } node.parentNode.removeChild(node,node.innerText()) } } }()