我有一个反应项目,我正在集成 Slate 富文本编辑器。但是,当我粘贴富文本内容(例如标题+ 一些带有链接的文本)时,它大部分都有效,在内容的上方和下方添加了一些空白行。
这是withHtml
代码
const withHtml = editor => {
const {insertData} = editor
editor.insertData = data => {
const html = data.getData('text/html')
if (html) {
const parsed = new DOMParser().parseFromString(html, 'text/html')
const fragment = deserialize(parsed.body)
console.log('Fragment: ', fragment)
Transforms.insertFragment(editor, fragment)
return
}
insertData(data)
}
return editor
}
结果console.log
是这样的
正如你所看到的,第一个元素fragment
是一个空行,文本被解析为这样
您可以在其上方看到空白的赞和标题。如果我添加一些代码来摆脱那个空行,比如
if (!fragment[0].text.trim().length) {
fragment.shift()
}
然后,如果我粘贴相同的文本,结果就是这样
heading-two
没有像被转换成段落的空白。为什么会这样?