0

我有一个反应项目,我正在集成 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是这样的

结果控制台.log

正如你所看到的,第一个元素fragment是一个空行,文本被解析为这样

在此处输入图像描述

您可以在其上方看到空白的赞和标题。如果我添加一些代码来摆脱那个空行,比如

if (!fragment[0].text.trim().length) {
  fragment.shift()
}

然后,如果我粘贴相同的文本,结果就是这样

在此处输入图像描述

heading-two没有像被转换成段落的空白。为什么会这样?

4

0 回答 0