Froala-editor 粘贴进来的文字格式化1

2021-04-21  本文已影响0人  禁止脸黑

通过 这两个配置,可以避免弹窗,自动清除格式,但是这个编辑器没法设置默认格式,所以清除完格式的文字,并不是默认格式的,需要对这段粘贴的文字进行默认格式的格式化

 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,结果粘贴进来的格式,还有加粗的格式,可以在这里配置

image.png

加个strong,因为检查发现,加粗的字体自动加上了strong标签,所以

pasteDeniedTags: ['strong'],

但是发现还是不对啊,特么的word里面的四级标题,五级标题,粘贴进来会变成h4,h5,会加粗,特么还是有问题啊

然后发现了这个


image.png

把这个值改成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;
            }
上一篇 下一篇

猜你喜欢

热点阅读