CKEditor как мне получить UIElement - PullRequest
       13

CKEditor как мне получить UIElement

3 голосов
/ 06 сентября 2011

Мне нужно иметь два меню выбора в диалоге CKEditor, при этом второе меню выбора меняет свои параметры в соответствии с выбранным параметром первого меню. Достаточно просто, как вы думаете! Но в CKEditor кажется действительно трудным получить DOM-эквивалент объекта CKEditor. Я могу получить доступ к объекту CKEditor, но не к его эквиваленту (ам) DOM.

Экземпляр объекта CKEditor select (UIElement) имеет некоторые полезные взаимодействия DOM, например getElement(), но я могу получить доступ к этому объекту только с помощью специального ключевого слова this в методе события в определении CKEditor select "class". 1005 *

Как я могу получить доступ к экземпляру объекта CKEditor UIElement (в данном случае, select)? У меня есть только идентификатор объекта CKEditor, CKEditor по какой-то разочаровывающей причине решает применить случайные идентификаторы к его эквивалентам объекта DOM.

Объект экземпляра, к которому я пытаюсь получить доступ, задокументирован здесь: (хотя нет упоминания о том, как получить этот экземпляр!) http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.ui.dialog.select.html

Ответы [ 3 ]

1 голос
/ 07 сентября 2011

Фактически, метод CKEDITOR.dialog.getCurrent() позволит вам получить доступ к экземпляру Dialog из любой функции, а оттуда вы сможете получить доступ к экземпляру UIElement любого объекта CKEditor, за которым вы ищете.

0 голосов
/ 07 сентября 2011

Спасибо за предложение, мю слишком короткое,

Я обнаружил, что могу получить доступ к другим меню выбора, используя этот метод:

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

this.getValue будет иметь тот же идентификаторэлемент пользовательского интерфейса CKEditor я после

0 голосов
/ 06 сентября 2011

Можете ли вы кэшировать то, что вам нужно, в обратных вызовах setup во время инициализации вашего диалога?

Вы можете передать функциям setup объект, и они могут поместить туда, что им нужно.Таким образом, вы бы передали объект в свои настройки:

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

А затем в вашем setup:

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

Тогда, по крайней мере, у вас будет доступ ко всем реальнымАтрибуты DOM ID, и вы можете getElementById() по мере необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...