我有一个网站,允许用户输入和创建新内容。我总是使用tinymce作为输入字段。今天切换到ckeditor之后,我注意到,我遇到了同样的问题,我在开始时使用了tinymce:
提交表单时,不会提交对编辑器中内容所做的更改。不知怎的,ckeditor.getData() - 方法似乎返回旧值(不是更新的值)。在某些情况下,它会返回新值。 (这只有在我尝试更新内容时才会发生,我使用setData()加载到编辑器中,而不是使用空的ckeditor-elements)
我真的无法弄清楚为什么ckeditor这样做......
在tinymce中,这是通过调用tinyMCE.triggerSave()来解决的。在获取textarea的内容之前,但我找不到ckeditor的等价物,有没有人知道如何在尝试从编辑器中读取内容之前刷新内容?因为这开始让我发疯...
答案 0 :(得分:1)
实际上这似乎解决了这个问题(至少在99%的情况下) http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-updateElement
也许有人知道更好的答案......
答案 1 :(得分:1)
如果CKEditor替换<textarea>
中的<form>
,则会为表单的onsubmit
事件添加一个监听器,因此在提交表单时editor.updateElement()
调用方法以更新<textarea>
的值。
我从未听说提交表单的情况不会触发此机制,但如果由于某些原因它不适合您,那么您可以:
editor.updateElement()
方法,editor.getData()
方法直接获取数据并在XHR请求中使用它(如果您这样做(这可以解释为什么onsubmit
未执行)。您可以在以下网址阅读更多内容:
答案 2 :(得分:0)
遇到同样的问题,在粘贴一个项目后,如果我在文本区域的末尾添加一个空格,那么它将触发更新,getData()将返回新的正确值。
否则,在粘贴之后,不会对getData();
进行更新editor.updateElement()//什么都没做