我正在使用React和react-draftjs-wysiwyg / Draft JS来构建文本编辑器/ CMS。
现在我想在其中添加功能: -
<Input />
。所有这些都完成了,除了4号。我在想,获取光标位置并将iframe HTML el推送到contentState的那一部分?但这混合了两种不同的数据类型。 iframe在html中,contentState是draft-js'对象。
另一个想法是:从anchorKey获取文本,将现有的contentState转换为HTML,找到文本,然后找到它之后的下一个空格(也许通过正则表达式)并将iframe附加到该文本。然后将整个事物转换回contentState并将其传递给EditorState prop?虽然看起来很琐事......
目前我的功能看起来像这样:
// react methods...
insertIFrameAtCursorPoint = (iframeHTMLelement) => {
const { editorState } = this.state;
const SelectionState = editorState.getSelection();
let currentCursorPosition = SelectionState.getAnchorKey();
let currentContent = editorState.getCurrentContent();
let currentContentBlock = currentContent.getBlockForKey(currentCursorPosition);
// change iframeHTMLelement into a block?
// add block back to currentContent?
//
}
// render() {
return (...
}
救命?