упаковщик документов javascript ckeditor - PullRequest
0 голосов
/ 26 июля 2011

Я нашел следующий ответ, когда искал код для навигации по элементам текстовой области редактора. Код работает, проблема только в том, что я не понимаю, почему ..

var documentWrapper = editorname.document; //replace by your CKEDitor instance ID 
var documentNode = documentWrapper.$; // or documentWrapper['$'] ; 

Ответ был получен отследующая ссылка stackOverflow:

ckeditor scrollIntoView на элемент div в редакторе

В частности, кто-то может объяснить мне синтаксис documentWrapper. $;

Понятия не имею, что это значит ??

Спасибо

Ответы [ 2 ]

0 голосов
/ 10 августа 2011

Разница между редактором, передаваемым в качестве аргумента плагинам / диалогам, и редактором, возвращаемым функцией getParentEditor ().

Обычно это один и тот же объект.Но если у вас есть несколько экземпляров редактора на одной странице, вам нужно использовать getParentEditor, чтобы убедиться, что вы работаете с правильным экземпляром редактора.

Особенно, если несколько редакторов совместно используют один toobar: Как получить несколько CKEditorЭкземпляры, чтобы поделиться той же панели инструментов?http://docs.cksource.com/CKEditor_3.x/Howto/Shared_Toolbar

Вы можете посмотреть код для переключателей диалогов в каталоге CKEditor: ckeditor \ _source \ plugins \ forms \ dialogs \ radio.js

Или на сайте документации: http://docs.cksource.com/ckeditor_api/symbols/src/plugins_forms_dialogs_radio.js.html


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

ckeditor_source \ plugins \ forms \ dialogs \ radio.js (5): CKEDITOR.dialog.add ('radio', функция (редактор)

(42) метка: editor.lang.checkboxAndRadio.radioTitle, (43) title: editor.lang.checkboxAndRadio.radioTitle,


Но для методов, используемых в диалоге, он использует getParentEditor (), так что действия будут выполняться с правильным экземпляром редактора: ckeditor_source \ plugins \ forms \ dialogs \ radio.js (30): editor = this.getParentEditor ();

(22) onOk: function () ........ editor = this.getParentEditor ();

Джо

0 голосов
/ 05 августа 2011

@ oggiemc

"$" представляет фактический объект DOM, на который указывает объект класса CKEDITOR.В этом случае вы работаете с классом "CKEDITOR.dom.document".Найдите документацию здесь: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dom.document.html

Ваш объект с именем "documentWrapper" является объектом CKEDITOR.Он будет иметь любые свойства, описанные в документации API CKEDITOR для этого объекта класса.Вы также можете использовать методы CKEDITOR.

Когда вы работаете с «documentWrapper. $», Вы работаете с объектом DOM, который описан в Спецификациях объектной модели документа.См. Спецификации здесь: http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/

Этот объект будет иметь свойства, описанные для этого типа объекта в спецификации DOM.Вы не будете использовать методы CKEDITOR для этого объекта, вы будете использовать методы, описанные в спецификациях DOM для этого типа объекта.

Таким образом, "$" является обобщенным представлением любого объекта DOM (document, head,body, div, span, p и т. д.), на который указывает объект класса CKEDITOR.

documentWrapper.someFunction ();будет использовать метод CKEDITOR для объекта класса CKEDITOR.documentWrapper $ SomeFunction ()..;будет использовать метод DOM для объекта DOM.

Джо

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