2013-01-20 30 views
2

我正在使用CKEditor,並且我編寫了一個彈出CKEditor對話框的插件。CKEditor - 觸發器對話框確定按鈕

我需要重新設計ok按鈕並添加更多元素,如文本框和複選框,但似乎這樣做很複雜,所以我隱藏了頁腳部分並在對話框內容中創建了一個uiElement與所有我需要的,但現在我想要的是在隱藏頁腳觸發okButton,但我找不到方法來做到這一點..

任何人?

回答

2

您可能會嘗試在plugin.js中添加此行。

var dialog = this.getDialog(); 
document.getElementById(dialog.getButton('ok').domId).click(); 

在我的自定義插件中,我只隱藏「ok」按鈕而不是整個頁腳。 下面是我的plugin.js聲明的一部分。

{ 
    type : 'fileButton', 
    id : 'uploadButton', 
    label : 'Upload file', 
    'for' : [ 'tab1', 'upload' ], 
    filebrowser : 
    { 
     action : 'QuickUpload', 
     onSelect : function(fileUrl, data){ 
      var dialog = this.getDialog(); 
      dialog.getContentElement('tab1','urlTxt').setValue(fileUrl); 
      document.getElementById(dialog.getButton('ok').domId).click(); 
     } 
    } 
} 

順便說一句,我使用CKEditor的4.0(修訂769d96134b)

+0

謝謝!其實我已經結束了添加元素與jQuery的頁腳和類的確定按鈕元素..也許不是最好的方式,但它是最快的。 – Adler

4

有可能是一個更好的辦法,但這裏是我如何做它:

var ckDialog = window.CKEDITOR.dialog.getCurrent(), 
    ckCancel = ckDialog._.buttons['cancel'], 
    ckOk = ckDialog._.buttons['ok']; 

ckOK.click(); 

訣竅是獲取按鈕,然後使用CKEditor Button API來模擬點擊。出於某種原因,我無法調用dialog.getButton('ok'),因爲getButton由於某種原因未定義。我的方法深入到私人數據,我懷疑是最好的辦法。

從昂秀事件(定義對話框時),我是能夠得到確定按鈕,如:文檔指出:

onShow: function() { 
    var okBtn = this.getButton('ok'); 
    ... 
} 

這裏的按鈕API:http://docs.ckeditor.com/#!/api/CKEDITOR.ui.dialog.button,並且也可以訪問該對話框API (我假設你已經去過了!!!)

+0

謝謝!其實我已經結束了添加元素與jQuery的頁腳和類的確定按鈕元素..也許不是最好的方式,但它是最快的。 – Adler

+0

如果您想要在ckeditor對話框中獲得最大的靈活性,請查看iframedialog插件。我只是用它構建了一個媒體上傳器,無法想象如何使用ckeditor API。 – Redtopia

相關問題