diff --git a/src/utils/prosemirror/index.ts b/src/utils/prosemirror/index.ts
index 2875197e..42a75bb9 100644
--- a/src/utils/prosemirror/index.ts
+++ b/src/utils/prosemirror/index.ts
@@ -10,7 +10,7 @@ const schema = new Schema({
marks: schemaMarks,
})
-const createDocument = (content: string) => {
+export const createDocument = (content: string) => {
const htmlString = `
${content}
`
const parser = new window.DOMParser()
const element = parser.parseFromString(htmlString, 'text/html').body.firstElementChild
diff --git a/src/views/components/element/ProsemirrorEditor.vue b/src/views/components/element/ProsemirrorEditor.vue
index d7a7158a..c85b1938 100644
--- a/src/views/components/element/ProsemirrorEditor.vue
+++ b/src/views/components/element/ProsemirrorEditor.vue
@@ -11,7 +11,7 @@ import { debounce } from 'lodash'
import { MutationTypes, useStore } from '@/store'
import { EditorView } from 'prosemirror-view'
import { toggleMark, wrapIn, selectAll } from 'prosemirror-commands'
-import { initProsemirrorEditor } from '@/utils/prosemirror/'
+import { initProsemirrorEditor, createDocument } from '@/utils/prosemirror'
import { getTextAttrs } from '@/utils/prosemirror/utils'
import emitter, { EmitterEvents, RichTextCommand } from '@/utils/emitter'
import { alignmentCommand } from '@/utils/prosemirror/commands/setTextAlign'
@@ -92,7 +92,9 @@ export default defineComponent({
watch(textContent, () => {
if (!editorView) return
if (editorView.hasFocus()) return
- editorView.dom.innerHTML = textContent.value
+
+ const { doc, tr } = editorView.state
+ editorView.dispatch(tr.replaceRangeWith(0, doc.content.size, createDocument(textContent.value)))
})
// 打开/关闭编辑器的编辑模式