正在从剪贴板读取格式化的 draft.js 文本

Readding formatted draft.js text from clipboard

当我单击按钮时,粘贴剪贴板中的文本时没有样式,但保持当前样式内联,但这不是我需要的。

我的代码

async function getClipboardContents() {
    try {
      const textFromClipboard = await navigator.clipboard.readText();

      const newContentState = Modifier.replaceText(
        editorState.getCurrentContent(),
        editorState.getSelection(),
        textFromClipboard,
        editorState.getCurrentInlineStyle(),
      );

      const newPushState = Draft.EditorState.push(editorState, newContentState, 'change-block-data');

      handleOnChange(newPushState);
    } catch (err) {
      console.error('error', err);
    }
  }

需要做什么才能插入带格式的文本?

使用 clipboard.readText() 后文本格式丢失。您应该改用 clipboard.read()。它将 return 数组 ClipBoardItem.

您可以通过这种方式从该对象读取您的初始格式:

const [clipboardItem] = await navigator.clipboard.read();
const blob = await clipboardItem.getType('text/html');

// Here's your formmated text
const formattedText = await new Response(blob).text();