通过 这两个配置,可以避免弹窗,自动清除格式,但是这个编辑器没法设置默认格式,所以清除完格式的文字,并不是默认格式的,需要对这段粘贴的文字进行默认格式的格式化
wordPasteModal: false,
wordPasteKeepFormatting: false,
解决:
在粘贴前,先设置好格式,通过监听事件
'paste.before': function () {
this.format.apply('p', {style: 'font-size:14px;line-height:2'});
}
这里只能用this.format.apply
,用this.lineHeight.apply
,或者this.fontSize.apply
都不行
然后发现wordPasteKeepFormatting
改成false,结果粘贴进来的格式,还有加粗的格式,可以在这里配置

加个strong,因为检查发现,加粗的字体自动加上了strong标签,所以
pasteDeniedTags: ['strong'],
但是发现还是不对啊,特么的word里面的四级标题,五级标题,粘贴进来会变成h4,h5,会加粗,特么还是有问题啊
然后发现了这个

把这个值改成true即可
光是wordPasteKeepFormatting
关闭,还不行,这只是不保留样式,但是转换的h4,h5,不算样式,需要额外加上pastePlain
为 true才能清除格式。
并且如果粘贴进来的是个表格,上述配置后,表格还是能粘贴进来,只不过每个格子里面的格式被清空了
需求要求不要表格粘贴进来,看了一下,没有能配置的,所以只能手动改了,还是在events里面监听这个事件,自己手动匹配表格替换掉,并返回
'paste.afterCleanup': function (clipboard_html) {
const regp = /<table.*?>[\s\S]*<\/table>/g;
if (regp.test(clipboard_html)) {
console.log("已自动清除表格")
clipboard_html = clipboard_html.replace(regp, '');
}
return clipboard_html;
}
网友评论