Javascript CKEditor中的getText()方法没有最新文本
我在每个按键上抓取用户在CKEditor文本区域中写入的文本,使用:Javascript CKEditor中的getText()方法没有最新文本,javascript,html,ckeditor,ckeditor4.x,Javascript,Html,Ckeditor,Ckeditor4.x,我在每个按键上抓取用户在CKEditor文本区域中写入的文本,使用: var userText = CKEDITOR.instances.rawText; userText.on( 'key', function() { var sentences = userText.document.getBody().getText(); ... } 但是,我注意到getText()方法返回的文本落后一个键(即:如果我键入句子“This is a句子,”,getText()将返回“T
var userText = CKEDITOR.instances.rawText;
userText.on( 'key', function() {
var sentences = userText.document.getBody().getText();
...
}
但是,我注意到getText()
方法返回的文本落后一个键(即:如果我键入句子“This is a句子,”,getText()
将返回“This is a句子”(无句点)
有趣的是,如果我将getBody()
方法的结果记录到控制台,我可以看到它包含整个文本,包括最近的按键。getData()
方法返回文本,但带有HTML标记的方法也不考虑最近的按键
这里发生了什么?这是一个CKEditor问题还是与JavaScript相关
编辑:
我做了更多的谷歌搜索,发现提到了这个方法。它似乎捕获了最新的事件,然后在
getText()
方法中返回。我将进一步测试这个问题,并为我的问题添加一个答案,如果行得通的话。你有没有尝试打开('keyup',function(){
我刚刚尝试将事件更改为“keyup”,“keydown”,和“keypress”。它们似乎都没有启动。我正在将一些内容记录到控制台,它们只有在我使用“key”作为事件名称时才会显示。好的,尝试打开('change',function(){
),这样就可以毫无疑问地在函数启动之前更新了输入。什么类型的元素是usertext
?我就是这么做的(请参见编辑)。它似乎正在工作。usertext是CKEditor的一个实例。我将进行另一次编辑以添加此内容。您是否尝试过('keyup',function(){我刚刚尝试将事件更改为“keyup”、“keydown”和“keypress”。它们似乎都没有触发。我正在将一些内容记录到控制台,它们仅在我使用“key”时显示作为event name.OK,请尝试('change',function(){)上的,这样毫无疑问输入在函数启动之前已经更新。什么类型的元素是usertext
?这就是我所做的(请参阅编辑)。它似乎正在工作。usertext是CKEditor的一个实例。我将进行另一次编辑以添加它