版本:3.10.4
操作系统:windows 11
浏览器:Edge 123.0.2420.97
编辑模式:wysiwyg
描述问题:未修改任何文字的默认状态下,直接粘贴图片,input 事件返回的值是空,需要敲键盘再次触发 input 才行
代码(Vue2):
<template>
<div id="vditor"></div>
</template>
<script>
import Vditor from 'vditor';
import "./mdeditor.css";
export default {
name: 'MarkdownEditor',
props: {
value: {
type: String,
default: () => '',
},
height: {
type: String,
default: () => 'auto',
},
},
data() {
return {
contentEditor: {},
}
},
mounted() {
this.contentEditor = new Vditor('vditor', {
height: this.height,
cdn: '/vditor',
toolbarConfig: {
pin: true,
},
undoDelay: 100,
mode: 'wysiwyg',
toolbar: [
'emoji',
'headings',
'bold',
'italic',
'strike',
//'link',
'|',
'list',
'ordered-list',
'check',
'outdent',
'indent',
'|',
'quote',
'line',
//'code',
//'inline-code',
'insert-before',
'insert-after',
'|',
// 'record',
'table',
// '|',
// 'undo',
// 'redo',
// '|',
],
upload: {
accept: 'image/*',
token: 'test',
url: '/api/resource/mdpost',
filename (name) {
return name.replace(/[^(a-zA-Z0-9\u4e00-\u9fa5\.)]/g, '')
.replace(/[\?\\/:|<>\*\[\]\(\)\$%\{\}@~]/g, '')
.replace('/\\s/g', '')
.replace(' ', '%20')
},
},
cache: {
enable: false,
},
after: () => {
this.contentEditor.setValue(this.value);
},
input: this.handleInput,
})
},
watch: {
value(newVal) {
if (newVal !== this.contentEditor.getValue())
this.contentEditor.setValue(this.value);
},
},
methods: {
handleInput(v) {
console.log('input', v);
this.$emit('input', v);
},
},
};
</script>
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于