diff --git a/js/maxlength.js b/js/maxlength.js index ce7a44e206b5b6313f458db44885b821c5951869..14b19f73d8f19be706cde1b96374714cb683e905 100644 --- a/js/maxlength.js +++ b/js/maxlength.js @@ -414,14 +414,15 @@ */ ml.ckeditor5 = function (editor, options) { $(once('maxlengthbinding', editor.sourceElement)).each(function() { - editor.model.document.on('change', function() { - if (editor.getData() !== editor.sourceElement.textContent) { + // Listen to changes to data only. + editor.model.document.on('change:data', function() { + let editorData = editor.getData(); + if (editorData !== editor.sourceElement.textContent) { // Trim if limit is reached and enforcing is activated. if (options['enforce']) { let maxlength = $(editor.sourceElement).data('maxlength'); - let data = editor.getData(); - let trimmed = ml.truncate_html(data, maxlength); - if (data.length !== trimmed.length) { + const trimmed = ml.truncate_html(editorData, maxlength); + if (editorData.length !== trimmed.length) { editor.setData(trimmed); setTimeout(() => { editor.model.change( writer => {