正在从剪贴板读取格式化的 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();
当我单击按钮时,粘贴剪贴板中的文本时没有样式,但保持当前样式内联,但这不是我需要的。
我的代码
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();