gpt4 book ai didi

javascript - 使用带有 html 输入和 html 输出的 draft js

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:40:37 26 4
gpt4 key购买 nike

我认为这是一个非常非常普遍的请求,但是,我找不到任何可以帮助我解决的问题。我已经尝试过各种插件,例如 draft-js-import-html 和变体,但它们似乎从未完全起作用,尤其是当您添加图像或嵌入视频时。

这是我想在编辑器中使用的示例 HTML:

var sampleMarkup = '<h1>Hello there</h1>' +
'<b>Bold text</b>, <i>Italic text</i>, <u>Underline text</u><br/ ><br />' +
'<a href="http://www.facebook.com">Example link</a>' +
'<img src="http://vignette1.wikia.nocookie.net/elderscrolls/images/6/64/Imga.jpg/revision/latest?cb=20110501053300" />' +
'<p>Hello there</p>' +
'<div class="responsive"><iframe width="560" height="315" src="https://www.youtube.com/embed/POrFPyHGKyw" frameborder="0" allowfullscreen></iframe></div>';

它有一些基本的 h1bold,...以及一个图像和一个 iframe 以及一个带有包装器的 iframe 来使视频响应。

我想要的是有一个 draft-js 编辑器,我可以在其中放入 HTML(如上),并在更改时返回 HTML。

那么如果我以此为起点,我怎样才能给它 HTML 并取回 HTML?

import React, { PropTypes, Component } from 'react'
import ReactDOM from 'react-dom'
import {Editor, EditorState} from 'draft-js'

var sampleMarkup = '<h1>Hello there</h1>' +
'<b>Bold text</b>, <i>Italic text</i>, <u>Underline text</u><br/ ><br />' +
'<a href="http://www.facebook.com">Example link</a>' +
'<img src="./someImg.png" />' +
'<p>Hello there</p>' +
'<div class="responsive"><iframe width="560" height="315" src="youtube/link/here" frameborder="0" allowfullscreen></iframe></div>';

class MyEditor extends Component {
static propTypes = {
html: PropTypes.string,
onChange: PropTypes.func
}
constructor(props){
super(props);
// TODO: Convert HTML to state somehow using props.html
this.state = {
editorState: EditorState.createWithContent(html);
}
}
render(){
return (
<Editor
editorState={this.state.editor}
onChange={this._onChange.bind(this)}
/>
);
}
_onChange(editorState){
this.setState({editorState: editorState});
// Convert state to html somehow here
this.props.onChange(html);
}
}

最佳答案

对于不同版本的draft.js有所不同,这里选择draft.js 0.10.0。对于正常输出,例如图像需要在每种情况下向编辑器描述。这是使用 CompositeDecorator 完成的。下面是 github draft.js

的例子

https://github.com/facebook/draft-js/blob/master/examples/draft-0-10-0/convertFromHTML/convert.html

关于javascript - 使用带有 html 输入和 html 输出的 draft js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41529703/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com