我有一个textarea,当用户将数据输入textarea时,数据显示在表单的底部,作为其数据显示方式的显示(与StackOverflow提供预览显示的方式大致相同)用户在用户输入时提问。)
我已将CKEditor 4.3.1安装到此textarea,并且不再显示预览显示。
我认为这是因为文本区域的id已被CKEditor的id替换,所以我尝试用CKEditor的id替换文本区域的id,但这种方法不起作用。 / p>
我的想法错了吗?我已经阅读了CKEditor文档,但没有找到任何帮助我。
当用户将数据输入CKEditor时,我应该使用什么方法显示数据?
答案 0 :(得分:4)
这是因为CKEditor在DOM中运行 你的<textarea>
(首先隐藏它),事实上,它不会更新{{1}的内容除非您请求它或销毁编辑器。这就是CKEditor的工作原理。
调用editor.updateElement
将<textarea>
与丰富的编辑器内容同步。您可以定期将editor#change
事件用于<textarea>
并保持同步。
可能存在的问题是,您的现有代码很可能会观察updateElement
中触发的键盘事件(onkeyup
,onkeydown
)并更新页面底部的预览。您需要将这些回调重新附加到editor#change
事件,因为CKEditor不会触发<textarea>
中的任何事件(正如我所提到的,它根本不与它交互)。因此有两种方法可以解决您的问题:
在editor#change
致电editor.updateElement
并点击<textarea>
上的代码触发键盘事件(参见the fiddle)。
<textarea>
将现有的预览更新回调附加到editor#change
。
我是2.因为1.是一种黑客攻击。但是,这当然取决于你。