試圖弄清楚如何動態地填充對話框中的選擇菜單......在我迄今爲止的所有嘗試中,我一直無法正確工作。CKeditor在對話框中動態選擇
回答
Bob,
這是一個片段,用於更改現有選擇菜單的項目。但是,你可以添加自己的,動態獲取值等
//for button we just want to limit the button type to button
if (dialogName == 'button') {
// updates the info tab
var infoTab = dialogDefinition.getContents('info');
var typeDef = infoTab.get('type');
var buttonType = new Array("Button", "button");
var myItems = new Array (buttonType);
typeDef['items'] = myItems;
如果沒有幫助,實際與預期的結果提供更多詳細信息。
我想你要做的是在你的 插件中動態地填充下拉菜單。無論出於何種原因,在打開對話框時需要填寫該下拉列表。
如果是這樣,這裏是我做了類似的情況:
{
type: 'select',
id: 'exam_ID',
label: 'Select Exam',
items : [ ['--- Select an Exam---',0] ],
setup : function(element) {
var element_id = '#' + this.getInputElement().$.id;
$.ajax({
type: 'POST',
url: 'lib/ckeditor/plugins/customExam/utilities/listExams.aspx',
data: '{"cpID":' + window.parent.$("#cpID").val() + '}',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: false,
success: function(data) {
$.each(data.DATA, function(index, item) {
$(element_id).get(0).options[$(element_id).get(0).options.length] = new Option(item[1], item[0]);
});
},
error:function (xhr, ajaxOptions, thrownError){
alert(xhr.status);
alert(thrownError);
}
});
}
}
的關鍵是發現CKEditor的設置,這是不是在元素定義的id
元素ID。您可以使用該id
作爲其他功能,但是如果您計劃對元素進行任何更新,則需要獲取CKEditor DOM元素。
可能有更好的方法來做到這一點,但這對我有用。
我注意到,在'setup:'你沒有使用'element'參數 - 可以嗎? – 2012-12-26 18:24:58
我不知道爲什麼,但使用ckeditor 4.5.4時,我不得不使用'onLoad'事件而不是'setup'。 [dialog uiElement reference](http://docs.ckeditor.com/#!/api/CKEDITOR.dialog.definition.uiElement)。 – jxmallett 2016-04-19 04:25:06
elements: [
{
type: 'select',
id: 'test',
label: 'test label',
items: [
['Please Choose', '']
],
onLoad: function(element) {
this.add('Option 1', '1');
this.add('Option 2', '2');
}
}
]
如果您想在對話框打開進行編輯時添加或刪除項目。您可以使用setup
呼叫。將它放在onLoad
的上方或下方。
setup: function(element) {
this.clear();
this.add('Please Choose', '');
this.add('Option 1', '1');
this.add('Option 2', '2');
this.setValue(element.getText());
},
- 1. CKeditor填充對話框選擇與Ajax
- 2. CKEditor 4:在插件對話框中添加動態選擇元素
- 3. CKeditor默認選擇圖片對話框中的上傳標籤
- 4. ckeditor插件對話框選擇從選定的描述
- 5. CKEditor圖像對話框窗體在模態對話框中不可點擊
- 6. 狀態欄選擇爲ListPreference對話框
- 7. 在jQuery對話框中的asp.net mvc ckeditor
- 8. 動態對話框
- 9. 打開CKEDITOR對話框沒有CKEDITOR
- 10. 如何在動態MFC對話框中創建複選框?
- 11. ckeditor對話框定位
- 12. CKEditor關閉對話框
- 13. Safari jquery對話框和ckeditor
- 14. 動態選擇框
- 15. 動態選擇框
- 16. 設計選擇:多選擇對話框?
- 17. 動態選擇上一個jQuery-UI-對話框
- 18. 在CKEditor中提交一個自定義對話框選項卡
- 19. 照片選擇對話框
- 20. 選擇朋友對話框
- 21. 號碼選擇對話框
- 22. JQuery對話框:選擇確認選項後在對話框中顯示消息
- 23. 模態對話框選項
- 24. 從其他選擇框中選擇框中選擇框動態刪除選項,
- 25. jQueryUI日期選擇器在對話框自動對焦在IE9
- 26. 在對話框中取消選擇的視圖選擇顯示
- 27. CKEditor調整對話框中的標籤
- 28. 在md對話框中選擇活動的md-tab md-tab-group
- 29. CKEditor 4 - iframe中的對話框/模態位置
- 30. CKEDITOR選擇拖放對鉻
欲填充選擇動態如: 示例: ' CKEDITOR.dialog.add( '富',功能(編輯) \t { \t \t返回{ \t \t \t標題:'test', \t \t \t resizable:CKEDITOR。DIALOG_RESIZE_BOTH, \t \t \t minWidth:500, \t \t \t了minHeight:400, \t \t \t內容:[ \t \t \t \t \t \t \t \t \t \t { \t \t \t \t \t \t \t類型:「塞萊CT」, \t \t \t \t \t \t \t標籤: '選擇考試:', \t \t \t \t \t \t \t寬度:200, \t \t \t \t \t \t \t項目:[ \t \t \t \t \t \t \t \t \t \t [ '一個',1],[ '二',2] \t \t \t \t \t \t \t \t \t] \t \t \t \t \t \t} \t \t \t \t \t \t \t \t \t \t] \t \t \t \t} \t \t \t] \t \t};; \t}); ' – bclingan 2011-03-14 23:45:01
您的代碼段很有幫助......但基本上我需要做的是通過外部來源填充選擇菜單,即類似ajax調用或許......似乎並沒有一個簡單的方法來做到這一點。有沒有,是否有可能「包裝」我想要做的一切iframe內的一切,打到另一個網頁。這將消除我不得不處理編輯器內部繁瑣的定義。 – bclingan 2011-03-15 02:37:14
我不確定我是否理解,阻止您進行AJAX調用的是什麼?這些onDefinitions只被調用一次,而不是每次用戶點擊插件。或者在啓動過程中加載數據並將其存儲在DATA或其他地方,然後使用它。 – rquinn 2011-03-17 17:49:53