Я пытаюсь зафиксировать атрибуты моего пользовательского плагина ckeditor, чтобы при выборе элемента onShow () заполнял все атрибуты. commitContent, кажется, работает как вызывающий element.getAttribute () после фиксации возвращает правильное значение. Однако element.getAttribute () после вызова setupContent () имеет значение null. Некоторый код копируется / вставляется из учебника ckeditor по адресу https://ckeditor.com/docs/ckeditor4/latest/guide/plugin_sdk_sample_2.html
contents: [
{
//TAB - BASIC
id: 'tab-basic',
label: 'Basic',
elements: [
{
//NAME
type: 'text',
label: "Name",
id: 'name',
'default': "ml-model",
setup: function( element ) {
this.setValue( element.getAttribute( "name" ) );
alert( 'setting up: ' + element.getAttribute( "name" ));
},
commit: function( element ) {
element.setAttribute( "name", this.getValue() );
alert( 'committing: ' + element.getAttribute( "name" ));
}
},
Это атрибут, о котором идет речь
onShow: function() {
var selection = editor.getSelection();
var element = selection.getStartElement();
//alert( 'test: ' + element.getAttribute( "name" ));
if ( element )
element = element.getAscendant( 'ml-model', true );
if ( !element || element.getName() != 'ml-model' ) {
element = editor.document.createElement( 'ml-model' );
this.insertMode = true;
}
else
this.insertMode = false;
this.element = element;
if ( !this.insertMode ) {
this.setupContent(this.element);
}
},
onOk: function() {
var dialog = this;
var abbr = this.element;
this.commitContent( abbr );
if ( this.insertMode) {
var content = strBuild();
var element = CKEDITOR.dom.element.createFromHtml(content);
var instance = this.getParentEditor();
instance.insertElement(element);
}
А вот мои функции onShow () и onOk (), которые должны фиксировать и настраивать содержимое.