2010-05-15 91 views
3

我一直在玩這個繞了幾個星期,現在沒有成功...引用文本輸入字段

在CKEditor的對話框,文本輸入字段被重命名爲一個唯一編號 - 例如id:'txtUrl'將變成id ='27_textinput'之類的東西。

我該如何參考?

// I feel it should be something like: 

var myfield = CKEDITOR.instances.myElement.document.$.body.getId('txtUrl'); 

// or maybe: 

var myfield = CKEDITOR.dialog.getContentElement('info','txtUrl'); 

// and then: 

myfield.value = 'myvalue'; 

但這些不起作用。請幫忙!在此先感謝,R

+0

可能的重複http://stackoverflow.com/questions/2777286/ckeditor-dialogs-referencing-input-fields-by-id/5053517#5053517 – 2011-02-19 21:35:16

回答

6

這是最終的解決方案:

var dialog = CKEDITOR.dialog.getCurrent(); 
dialog.setValueOf('info','txtUrl',"http://google.com"); 
return false; 
-1

得到

var ckValue = CKEDITOR.instances['txtUrl'].getData(); 

,並設置

CKEDITOR.instances['txtUrl'].setData(ckValue); 
+0

嗨,感謝您的快速響應!我在FireBug中獲得「CKEDITOR.instances.txturl未定義」。 該實例具有'名稱content_main',所以我也試過: CKEDITOR.instances.content_main ['txt_url']。setData('Hello world'); 但是引發同樣的錯誤。一個想法? – rthakrar 2010-05-15 13:21:58

0

看那API對話框樣例:

// Get a reference to the "Link Info" tab. 
    var infoTab = dialogDefinition.getContents('info'); 

    // Set the default value for the URL field. 
    var urlField = infoTab.get('url'); 
    urlField['default'] = 'www.example.com'; 
+0

嗨,對不起,我只是看到了這個! 我根據你的指示在onLoad下嘗試了以下... var infoTab = dialogDefinition.getContents('info'); var urlField = infoTab.get('txtUrl'); 然後我想在下面設置onLoad的值,但它不起作用。 urlField.setValue ='www.example.com'; 希望你能幫助! – rthakrar 2010-06-14 21:44:51

2

您有一個包含CKEditor 3的頁面並彈出一個對話框。你從這個對話框打開另一個彈出窗口,這是一個JSP頁面。爲了CKEditor的的父窗口的對話框中的值設置爲一個字段,請執行下列操作:

window.opener.CKEDITOR.dialog.getCurrent().getContentElement('dialogTabId', 'dialogTabFieldId').setValue('yourValue'); 

這適用於CKEditor的3

3

元素的一個onchange一部分,我現在用的

dialog = this.getDialog(); 
alert(dialog.getContentElement('info', 'grootte').getInputElement().$.id); 

並且它給出'cke_117_select'作爲結果。 (這是一個選擇框)

alert(dialog.getContentElement('info', 'txtUrl').getInputElement().$.id); 

給出'cke_107_textInput'。
我認爲這是您(或此頁面的其他訪問者)正在尋找的內容。