Я не могу понять, как слушать фокус, щелкнуть, onKeyUp и другие основные события dom в ckeditor. В сводке существует всего несколько событий, касающихся жизненного цикла ckeditor. И "textArea" ckeditor - это iframe, и он сам html, поэтому неясно, на что dom node слушать.
Как прослушивать основные события в CKEditor?
Ответ 1
Это неважно, просто выполните следующие действия: работайте с фокусом, размытием, кликом и т.д.
var ckeditor = CKEDITOR.instances['textArea_id'];
ckeditor.on('focus', fnHandler, context, data, priority);
или пример jQuery:
$(document).ready(function () {
$('#YOUR_TEXTAREA_ID').ckeditor(ckeditor_config);
CKEDITOR.instances.YOUR_TEXTAREA_ID.on('blur', fnHandler);
});
Я не знаю, когда появилась эта поддержка, но она определенно работает для 3.5.x
Ответ 2
CKEditor фактически имеет встроенную обработку событий в объекте. См. Эту статью для объяснения: http://alfonsoml.blogspot.com/2009/09/ckeditor-events.html
Итак, чтобы уловить модификацию в экземпляре CKEditor, вы можете сделать это:
CKEDITOR.on('currentInstance', function(){modified = true;});
Кроме того, похоже, что версия 3 имеет встроенный в нее процессор событий, более простой: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.ui.dialog.file.html#eventProcessors
CK немного запутан, а документация имеет отверстия, но, основываясь на его способности грациозно обрабатывать Word, созданный HTML, он получает мой голос как лучший вариант там.