CKEditor – Detect when typing stopped
I was trying to figure out a way to detect when the user typing in the editor has paused / stopped. The documentation of CKEditor and Stackoverflow do not have my answer, fortunately I was able to come up with a simple solution!
I first started with the basics – I played with a simple <textarea /> without CKEditor and the code bellow worked for me:
Type in the text box. it will time out and run the function when you stop for the time alotted. <textarea id="editor"></textarea>
var timer = null;
$('#editor').keydown(function(){
clearTimeout(timer);
timer = setTimeout(doStuff, 1000)
});
function doStuff() {
alert('do stuff');
}
And next – I applied the code above to a CKEditor instance.
CKEditor doesn’t have keyup or keydown events, but what they have is key
So I did the following using closures and it worked for me!
var timer = null;
CKEDITOR.instances['#editor'].on('key', function(){
clearTimeout(timer);
timer = setTimeout(doStuff.bind(textarea, $('#editor')), 1000)
});
function doStuff(textarea) {
alert(textarea.val());
}
Do you need help with a project? or have a new project in mind that you need help with?
Contact Me