CKEditor this.editables не доступен во время downcast?
Вот выдержка из моего плагина ( полная версия):
CKEDITOR.plugins.add('dndck4', {
lang: 'en',
requires: 'widget',
init: function (editor) {
editor.widgets.add('dndck4', {
dialog: 'atomProperties',
pathName: 'atom',
editables: {
caption: {
selector: '.dnd-caption-wrapper',
pathName: 'caption',
allowedContent: 'a[href]; strong; em'
}
},
...
downcast: function(el) {
var caption = '';
if (this.data.usesCaption) {
caption = this.editables.caption.getHtml();
}
var html = Drupal.dndck4.downcastedHtml(this.data, caption);
return CKEDITOR.htmlParser.fragment.fromHtml(html);
},
Это работало хорошо, пока другой JS не сделал что-то очевидно безвредное:
editor.on('change', function() {
// Let CKEditor handle updating the linked text element.
editor.updateElement();
});
Это нарушает мой плагин на основе виджетов (this.editables - пустой объект). Конечно, я могу просто проверить this.editables, чтобы избежать ошибки в следующей строке caption = this.editables.caption.getHtml();
но я хотел бы знать, что случилось и почему.