我正在使用带有CKEDITOR.disableAutoInline = true
的CKEditor。
然后我致电inlineAll()
以内联所有contenteditable
。
之后,我立即从编辑器中获取数据:
CKEDITOR.inlineAll();
var editor = ... //get the editor instance
console.log(editor.getData());
问题是CKEDITOR更改了标记,而我使用getData()
获得的标记是在更改之前。
这就是内容标记的样子:
<p>test<a href="test.com">aaa</a>test test<a href="test.com">bbb</a>test</p>
<p>test asdf</p>
<a href="http://google.com" target="_blank">link</a>
<p>test</p>
<a href="http://google.com">link</a>
<p>test</p>
CKEDITOR修改标记,以便<a>
s在他们自己的段落中:
<p>test<a href="test.com">aaa</a>test test<a href="test.com">bbb</a>test</p>
<p>test asdf</p>
<p><a href="http://google.com" target="_blank">link</a></p>
<p>test</p>
<p><a href="http://google.com">link</a></p>
<p>test</p>
问题是我使用getData()
收到的标记是修改前的标记。
我可以做些什么来确保CKEditor准备好并且来自getData()
的标记是最新的标记?
答案 0 :(得分:0)
有editor.status
属性和editor#instanceReady
事件。触发事件后,状态将更改为'ready'
。在该编辑器返回缓存的可编辑元素innerHTML
而不是处理过的数据之前。
因此,如果您想确保获得真实数据,那么您需要检查状态并等待实例准备就绪(如果尚未准备好)。