在'html.set'或'snapshot.restore'之后保留Froala编辑器中的插入位置

时间:2015-09-16 19:44:40

标签: javascript reactjs froala

我正在尝试将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版本中存在相同的行为。

1 个答案:

答案 0 :(得分:2)

恢复快照应该有效。如果你可以使jsFiddle无法正常工作,你可以在Github repo上报告。

另一种方法是在获取HTML之前调用selection.save,以便获得带有标记的HTML。然后,如果你有带选择标记的HTML,光标将被放置在之前的位置。