Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как работает CKEditor? (https://javascript.ru/forum/misc/34020-kak-rabotaet-ckeditor.html)

ololosh 18.12.2012 10:53

Как работает CKEditor?
 
Есть такой вот редактор CKEditor. Создатели говорят, что это самая лучшая вусивуга.
http://ckeditor.com/

Наверняка, многие с ней работали.
Так вот. Там фишка в том, что этот редактор разбит на множество файлов и директорий (например, в корне лежат папки lang, plugins, samples, skins, config.js и еще)

НО, на саму хтмл-страницу подключать надо только 1 файл!!! ckeditor.js из корня (что-то типа
<script src="ckeditor/ckeditor.js"></script>
будет).
Как такое возможно? Почему оно работает? Ведь в js нету include (require) функций, способных подключать 1 js-файл внутрь другого js-файл.
Почему мы на хтмл-страницу подключаем всего 1 скрипт, а он, каким-то образом инклюдит в себя кучу других файлов?

Тот же jQuery, к примеру, там все одним файлом идёт...

ruslan_mart 18.12.2012 11:27

Может
document.write('<script src="Script.js"\><\/script>');



ololosh 18.12.2012 11:59

Да, похоже на то.
Но в этом редакторе весь функционал, насколько я понял, вынесен в папку plugins, а подключение чего-либо из этой папки я не нашел на странице с редактором...
Как такое возможно?

ruslan_mart 18.12.2012 12:01

ololosh, возможно он подгружает iframe и в него загружает скрипты с плагинами.

ololosh 18.12.2012 12:10

Но он загружает всего 1 iframe на страницу и в нём нету ни одного тега скрипт. Во всяком случае, я не нашёл (фаербагом смотрел).

ruslan_mart 18.12.2012 12:31

ololosh, может эти плагины вообще не грузятся? Или нужно что-нибудь нажать, чтобы загрузило их.

godofjavascript 18.12.2012 13:08

Цитата:

Сообщение от ololosh
Ведь в js нету include (require) функций, способных подключать 1 js-файл внутрь другого js-файл.

Конечно нет, хз как он работает. Может как то получает доступ к твоей оси? яхз, но видно точно што там обдходной путь идет.

Может айфрейм?

ololosh 18.12.2012 18:06

Цитата:

Сообщение от godofjavascript (Сообщение 222030)
Конечно нет, хз как он работает. Может как то получает доступ к твоей оси? яхз, но видно точно што там обдходной путь идет.

Штоу???

godofjavascript 18.12.2012 19:07

Ладно не буду издеваться.

Тебя научить скрипты скриптом инклюдить или што? или мож ивалить научить?

Hoshinokoe 20.12.2012 17:50

ololosh,

Ckeditor подгружает скрипты следующим способом:
var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.src = scriptSrc;
...
document.body.appendChild( script );

В некоторых случаях ставляет в head:
document.getElementsByTagName( 'head' )[0].appendChild( script );

Все плагины, которые нужно подгрузить(или наоборот не нужно) - указаны в настройках.
CKEditor.defaults = {
    removePlugins: 'elementspath',
    extraPlugins: 'onchange'
};
Все можно посмотреть в исходниках :).


Часовой пояс GMT +3, время: 13:04.