3

我想导入或粘贴一个带有类名属性的简单 html 片段,以便在 Draft.js 编辑器中解析并激活这些类。类名的这种解析和设置应该独立于 html-tag 类型,例如<div>, <span>, <b>, <strong>等。

起初,我认为这将是与 draft.js 相关的标准问题,但是我在网上没有找到任何答案,这就是我在这里提出问题的原因。

我坚持这个:

我看到,当我使用这个简单的 handlePastedText 函数时,粘贴了正确的 html 代码:

    handlePastedText(text, html){
      console.log(html);
      return false;
    }

    // one <span class="blau">simple</span> test

使用这个 Draft-js 编辑器:

    <Editor readOnly={this.state.readOnly} 
            editorState={this.state.editorState} 
            onChange={this.onChange}
            handlePastedText={this.handlePastedText.bind(this)}/>

但是,对应的 draft-js 编辑器状态不知道类,因此在浏览器中没有相应地格式化。EditorState 是:

    {"entityMap":{},
     "blocks":[{ "key":"9fqpj","text":"one simple test",
                 "type":"unstyled",
                 "depth":0,
                 "inlineStyleRanges":[],
                 "entityRanges":[],
                 "data":{}}]}

回到这个 html 源代码:

     <span data-text="true">one simple test</span>

我很想知道这个问题有一个优雅而简单的解决方案。只是将 classNames 导入 Draft.js 编辑器?也许我从错误的角度看待它,但我认为这对更广泛的受众是有益的,因为您可以在任何 Draft.js 可编辑的编辑器中轻松处理、粘贴和格式化具有任何(外部)样式的片段。

先感谢您!

4

0 回答 0