allow passing html strings to setContent
This commit is contained in:
@@ -171,10 +171,11 @@ export default {
|
|||||||
this.html = getHTML()
|
this.html = getHTML()
|
||||||
},
|
},
|
||||||
clearContent() {
|
clearContent() {
|
||||||
this.$refs.editor.clearContent()
|
this.$refs.editor.clearContent(true)
|
||||||
this.$refs.editor.focus()
|
this.$refs.editor.focus()
|
||||||
},
|
},
|
||||||
setContent() {
|
setContent() {
|
||||||
|
// you can pass a json document
|
||||||
this.$refs.editor.setContent({
|
this.$refs.editor.setContent({
|
||||||
type: 'doc',
|
type: 'doc',
|
||||||
content: [{
|
content: [{
|
||||||
@@ -186,7 +187,11 @@ export default {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
}],
|
}],
|
||||||
})
|
}, true)
|
||||||
|
|
||||||
|
// HTML string is also supported
|
||||||
|
// this.$refs.editor.setContent('<p>This is some inserted text. 👋</p>')
|
||||||
|
|
||||||
this.$refs.editor.focus()
|
this.$refs.editor.focus()
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -255,10 +255,25 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getDocFromContent(content) {
|
||||||
|
if (typeof content === 'object') {
|
||||||
|
return this.schema.nodeFromJSON(content)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof content === 'string') {
|
||||||
|
const element = document.createElement('div')
|
||||||
|
element.innerHTML = content.trim()
|
||||||
|
|
||||||
|
return DOMParser.fromSchema(this.schema).parse(element)
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
},
|
||||||
|
|
||||||
setContent(content = {}, emitUpdate = false) {
|
setContent(content = {}, emitUpdate = false) {
|
||||||
this.state = EditorState.create({
|
this.state = EditorState.create({
|
||||||
schema: this.state.schema,
|
schema: this.state.schema,
|
||||||
doc: this.schema.nodeFromJSON(content),
|
doc: this.getDocFromContent(content),
|
||||||
plugins: this.state.plugins,
|
plugins: this.state.plugins,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user