2017-02-24 9 views
0

私はCKEDITOR placeholder pluginと協力しており、onClickでウィジェットデータを設定しようとしています。onClickイベントでCKEDITORダイアログデータを設定するには

私はコミット時にウィジェットのデータを設定したときにすべてが正常に動作します:

commit: function(widget) { 
    widget.setData('name', this.getValue()); 
} 

しかし、私はonClickの上で同じことをしよう:

onClcik: function(widget) { 
    widget.setData('name', this.getValue()); 
} 

widgetオブジェクトが異なっており、widget.setDataは未定義です。

私の質問は、無線要素のonClickイベントのウィジェットデータを設定する方法ですか?

Placholder.js

'use strict'; 
CKEDITOR.dialog.add('placeholder', function(editor) { 
    var lang = editor.lang.placeholder, 
     generalLabel = editor.lang.common.generalTab, 
     validNameRegex = /^[^\[\]<>]+$/; 

    return { 
     title: 'Insert variable from:', 
     minWidth: 200, 
     minHeight: 151, 
     contents: [{ 
      id: 'initial-view', 
      label: 'view one', 
      title: generalLabel, 
      elements: [{ 
       id: 'view-one', 
       style: 'width: 100%;', 
       type: 'html', 
       html: '' 
      }, { 
       type: 'button', 
       id: 'open-organizational-units', 
       label: 'Organizational units', 
       title: 'Organizational units', 
       className: 'dialog-btn-icon-forward', 
       setup: function(widget) { 
        this.setValue(widget.data.name); 
       }, 
       onClick: function(widget) { 
        this.getDialog() 
         .selectPage('organizational-unit-view'); 
       } 
      }] 
     }, { 
      id: 'organizational-unit-view', 
      label: 'view two', 
      title: generalLabel, 
      elements: [{ 
        type: 'button', 
        id: 'back-to-main-view', 
        label: 'Organizational units', 
        title: 'Organizational units', 
        className: 'dialog-btn-icon-back', 
        setup: function(widget) { 
         this.setValue(widget.data.name); 
        }, 
        onClick: function(widget) { 
         this.getDialog() 
          .selectPage('initial-view'); 
        } 
       }, 
       { 
        type: 'radio', 
        id: 'list-of-vars', 
        align: 'vertical', 
        style: 'color: green', 
        'default': '', 
        setup: function(widget) { 
         this.setValue(widget.data.name); 
        }, 
        onClick: function(widget) { 
         widget.setData('name', this.getValue()); 
        }, 
        commit: function(widget) { 

        } 
       } 
      ] 
     }] 
    }; 
}); 

答えて

0

それはonClickイベントに動作させるためには、単にこの

onClick: function(widget) { 
        if (this.getValue()) { 
         var okBtn = document.getElementsByClassName('cke_dialog_ui_button_ok'); 
         okBtn[0].click(); 
        } 
       } 
のようなのonClick関数内

var okBtn = document.getElementsByClassName('cke_dialog_ui_button_ok'); 
okBtn[0].click(); 

を追加します

関連する問題