Javascript ckeditor getData()在源模式下返回过时数据(缺少最后一次更改)
尝试在源模式下键入以调试使用Javascript ckeditor getData()在源模式下返回过时数据(缺少最后一次更改),javascript,ckeditor,Javascript,Ckeditor,尝试在源模式下键入以调试使用 CKEDITOR.instances[“editor1”].on(“key”,函数(e){console.log(“change:+e.editor.getData())})在控制台中 我总是在控制台中看到少一个字符,因此如果我键入了abc我会看到ab 注意:使用键事件是因为 和 在这里写一个详细的答案,并附上我的分析 正如我前面所说的,甚至在将键笔划记录为编辑器中文本的一部分之前,就已经提取了getData()。这就是为什么您会看到以前的数据(按键前的数据) 我无
CKEDITOR.instances[“editor1”].on(“key”,函数(e){console.log(“change:+e.editor.getData())})
在控制台中
我总是在控制台中看到少一个字符,因此如果我键入了abc
我会看到ab
注意:使用键事件是因为
和
在这里写一个详细的答案,并附上我的分析 正如我前面所说的,甚至在将键笔划记录为编辑器中文本的一部分之前,就已经提取了getData()。这就是为什么您会看到以前的数据(按键前的数据) 我无法在当前情况下为您提供太多帮助,因为暴露的代码非常少。我真的不知道你是如何使用它的,什么样的线主持它 但是,我将在我的分析中发布- 我创建了一个waitfunc(),它只将超时设置为5秒。我这样做是为了观察是先在编辑器中记录键还是先获取数据
function waitfunc() {
setTimeout(function() {
console.log("wait")
}, 5000)
}
CKEDITOR.instances["editor1"].on("key", function(e) {
waitfunc();
console.log("change: " + e.editor.getData());
waitfunc();
})
我看到数据是先采集的。然后,新按下的键被添加为编辑器的一部分。我在这一段的末尾加了“c”
所以,请看一下代码(代码行的顺序或其他)。如果可能的话,分享更多的代码,我可以提供更多的帮助
希望有帮助。我的理解是,
“key”
事件类似于javascript中的onkeydown
,因此在key down上查看编辑器的内容意味着在添加字符之前查看它。您应该查看“keyup”
事件,该事件在内容更改后触发。很像setTimeout
解决方案,但更“合适”
请参见此处的代码示例我检查了一次代码。我同意工作是不同的。它显示一个比当前实例早的实例。我可以看看getData()的实现吗?我的感觉是,在允许对编辑器进行更改之前,您就试图从编辑器中获取数据。我正在使用ng ckeditor使其与我的angular编辑器一起工作。ng ckeditor在内部使用getData()。很高兴知道我的分析有帮助:)请将其标记为答案(勾号),这样问题看起来就解决了。