allow passing html strings to setContent

This commit is contained in:
Philipp Kühn
2018-09-25 08:08:51 +02:00
parent 2dd2e3361e
commit 3e20386a36
2 changed files with 23 additions and 3 deletions

View File

@@ -171,10 +171,11 @@ export default {
this.html = getHTML()
},
clearContent() {
this.$refs.editor.clearContent()
this.$refs.editor.clearContent(true)
this.$refs.editor.focus()
},
setContent() {
// you can pass a json document
this.$refs.editor.setContent({
type: 'doc',
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()
},
},

View File

@@ -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) {
this.state = EditorState.create({
schema: this.state.schema,
doc: this.schema.nodeFromJSON(content),
doc: this.getDocFromContent(content),
plugins: this.state.plugins,
})