CKEDITOR.dialog.add( 'pollsDialog', function( editor ) { return { title: 'Вставка Опроса', minWidth: 400, minHeight: 200, contents: [ { id: 'tab-basic', label: 'Базовые', elements: [ { type: 'text', id: 'url', label: 'Вставьте ссылку http://www.amic.ru/polls/widget/nnn/', validate: CKEDITOR.dialog.validate.notEmpty( "Поле для ссылки не должно быть пустым вида http://www.amic.ru/polls/widget/nnn/" ), setup: function( element ) { //his.setValue( 'hhhh' ); this.setValue( element.getAttribute( "url" ) ); console.log( element ); }, commit: function( element ) { element.setText( this.getValue() ); } }, { type: 'radio', id: 'type', label: 'Выбрать', items: [ [ 'Вариант тортик', '1' ], [ 'Вариант - бублик', '2' ] ], 'default': '1', setup: function( element ) { console.log(element.getAttribute( "type" )); this.setValue( element.getAttribute( "type" ) ); }, commit: function( element ) { element.setAttribute( "type", this.getValue() ); } } ] }, ], onShow: function() { var selection = editor.getSelection(); var element = selection.getStartElement(); // if ( element ) // element = element.getAttribute( 'url' ); //console.log($(element).attr('id')); if ( !element || $(element).attr('id') != 'widgetpolls' ) { element = editor.document.createElement( 'polls' ); this.insertMode = true; } else this.insertMode = false; this.element = element; // console.log(element); // console.log(selection); if ( !this.insertMode ) this.setupContent( this.element ); }, onOk: function() { var dialog = this; var polls = editor.document.createElement( 'div' ); polls.setAttribute('id', 'widgetpolls'); polls.setAttribute( 'type', dialog.getValueOf('tab-basic', 'type') ); polls.setAttribute( 'url', dialog.getValueOf( 'tab-basic', 'url' ) ); polls.setHtml('  '); //this.commitContent( polls ); editor.insertElement( polls ); } }; });