vue-quill-editor 粘贴图片

//富文本编辑器
import { container, quillEditor, Quill } from "vue-quill-editor";
// 粘贴图片上传
import {ImageExtend} from 'quill-image-paste-module'
Quill.register('modules/ImageExtend', ImageExtend)
// 配置项
editorOption:{
placeholder: '',

theme: 'snow',// 主题 modules: { toolbar: { container: container,// 工具栏选项 handlers: handlers// 事件重写 }, clipboard: { // 粘贴过滤 matchers: [[Node.ELEMENT_NODE, HandleCustomMatcher]] }, ImageExtend: { loading: true, name: 'imageFile', action: '/api/cms/share/uploadCopyFile', response: (res) => { return res.data.url; } } }

}
function HandleCustomMatcher (node, Delta) {
// 文字,从别处复制而来,清除自带样式,转为纯文本 let ops = [] Delta.ops.forEach(op => { if (op.insert && typeof op.insert === 'string') { ops.push({ insert: op.insert }) } }) Delta.ops = ops return Delta

}
这种方式只适用于新增,编辑的时候,初始值中的图片会被过滤掉,导致图片无法展现
修复HandleCustomMatcher后即可
function HandleCustomMatcher (node, Delta) {
// 文字,从别处复制而来,清除自带样式,转为纯文本 if(node.src && node.src.indexOf('data:image/png') > -1){ Delta.ops = []; return Delta; } let ops = [] Delta.ops.forEach(op => { if (op.insert && typeof op.insert === 'string') { ops.push({ insert: op.insert }) }else if(op.insert && typeof op.insert.image === 'string'){ ops.push({ insert: op.insert }) } }) Delta.ops = ops return Delta

【vue-quill-editor 粘贴图片】}

    推荐阅读