百度编辑器UEditor去除复制样式实现无格式粘贴

百度编辑器UEditor内置了无格式粘贴功能,只需要对ueditor/ueditor.config.js文件简单的配置即可。

  1. 开启retainOnlyLabelPasted,设置为true
1
2
//粘贴只保留标签,去除标签所有属性
,retainOnlyLabelPasted: true
  1. 开启pasteplain,设置为true
1
,pasteplain:true  //是否默认为纯文本粘贴。false为不使用纯文本粘贴,true为使用纯文本粘贴
  1. 修改filterTxtRules过滤规则

filterTxtRules过滤规则默认只过滤pdivli这几个标签。如果h1~h6这类标签,只是将标签体替换为p标签,并没有将标签体的样式去除。

如果需要将所有标签的样式都去掉,修改过滤规则为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//纯文本粘贴模式下的过滤规则
,'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())
}
}
}()

如果h1~h6这类标签,只是将标签体替换为p标签,并将样式都去掉,修改过滤规则为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//纯文本粘贴模式下的过滤规则
,'filterTxtRules' : function(){
function transP(node){
node.tagName = 'p';
node.setStyle();
delete node.attrs.style;// 删除样式
}
return {
//直接删除及其字节点内容
'-' : 'script style object iframe embed input select',
'p': {$:{}},
'br':{$:{}},
'div':{'$':{}},
'li':{'$':{}},
'caption':{$:{}},
'th':{$:{}},
'tr':{$:{}},
'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())
}
}
}()
坚持原创技术分享,您的支持将鼓励我继续创作!
0%