[英]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.