我正在尝试将Froala编辑器合并到React组件中,并且在使用'html.set'或'snapshot.restore'方法更新编辑器中的内容后,难以保留插入位置。
目标是在React的状态下维护Froala的编辑器内容(使用Flux商店):
抓取HTML(并随后将其存储在Flux商店中)不是问题:
var content = $('#editor').froalaEditor('html.get', true);
但是,尝试使用以下命令将状态恢复为Froala时:
$('#editor').froalaEditor('html.set', this.state.content);
新的HTML更新没有问题,但插入符号停止闪烁。编辑器仍然具有焦点,但输入的任何新文本都插入到任何<p> </p>
标记内容之外。这有效地使插入符号从最后位置向上移动。
或者,使用以下内容获取和恢复快照:
var snap = $('#editor').froalaEditor('snapshot.get');
$('#editor').froalaEditor('snapshot.restore', snap);
将插入符号移动到编辑器中的左上角位置。
在设置HTML(或snapshop还原)之后,有没有办法获得插入位置并重新关注该位置?
这是使用Froala 2.0.0-rc2,但最新的1.x版本中存在相同的行为。
答案 0 :(得分:2)
恢复快照应该有效。如果你可以使jsFiddle无法正常工作,你可以在Github repo上报告。
另一种方法是在获取HTML之前调用selection.save,以便获得带有标记的HTML。然后,如果你有带选择标记的HTML,光标将被放置在之前的位置。