簡體   English   中英

CKEditor如何獲得UIElement

[英]CKEditor how do I get a UIElement

我需要在CKEditor對話框中有兩個選擇菜單,第二個選擇菜單根據第一個菜單的選定選項更改其選項。 你會想到的很簡單! 但是在CKEditor中,獲取與CKEditor對象相當的DOM似乎非常困難。 我可以訪問CKEditor對象,但不能訪問它的DOM等價物。

CKEditor select( UIElement )對象的實例有一些有用的DOM交互,即getElement()但我只能在CKEditor選擇“類”定義中的事件方法中使用特殊的this關鍵字訪問此對象。

如何訪問CKEditor UIElement對象的實例(在本例中為select)? 我只有CKEditor對象的id,CKEditor出於某種令人沮喪的原因決定將隨機id應用於其DOM對象等價物。

我試圖訪問的實例對象在這里記錄:(沒有提到如何獲取此實例!) http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.ui.dialog.select.html

事實上, CKEDITOR.dialog.getCurrent()方法將允許您從任何函數訪問Dialog實例,並從那里您可以訪問您所追求的任何CKEditor對象的UIElement實例。

您可以在對話框初始化期間緩存setup回調中所需的內容嗎?

您可以將setup功能傳遞給對象,他們可以將所需內容放在那里。 所以你要將一個對象傳遞給你的設置內容:

onShow: function() {
    //...
    this.cachedDomIds = { };
    this.setupContent(this.cachedDomIds);
    //...
}

然后在你的setup

setup: function(cache) {
    //...
    cache.some_dom_id = this.domId;
    //...
}

那么至少你可以訪問所有真正的DOM id屬性,你可以根據需要獲得getElementById()

謝謝你的建議mu太短了,

我發現我可以使用此方法訪問其他選擇菜單:

this.getDialog().getContentElement([insert_dialog_name_here], this.getValue()).getElement()

this.getValue將具有我所追求的CKEditor UI元素的相同ID

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM