|
|
|
Как динамически загрузить WYSIWYG редактор?
|
|||
|---|---|---|---|
|
#18+
Как можно динамически загрузить WYSIWYG редактор (TinyMCE, openWYSIWYG, freerichtexteditor, или любой другой нормальный)? Пример - обычная страница, текст, нажимаем кнопку "Редактировать" через AJAX обновляем страницу и загружаем редактор. Проблема в том, что он динамически никак не загружается :(. Они работают только если JS импортировать в head секции. Пробовал следущее автор function loadScript(url) { var e = document.createElement("script"); e.src = url; e.type="text/javascript"; document.getElementsByTagName("head")[0].appendChild(e); } По логам видно, что скрипт загрузился, но выдает ошибку, что переменная "WYSIWYG" (которая как-раз и определяется в этом скрипте) не определена. По видимому он загружает и выполняет скрипт, но не в области видимости 'document/window' а где-то еще. Пробовал еще асинхронно загрузить скрипт и выполнить через eval, но так тоже не получается, вызов асинхронный и обращение к инициализированной переменной происходит до его завершения. Кто-нибуть сталкивался с таким вопросом? Может я не там ищу? В head загружать не хочу потому-что весит он много а редактируют редко. П.С. я еще использую dojo, а там есть спец-загрузчик 'dojo.require' но он работает только для модулей самого dojo, как его использовать для сторонних файлов я не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2009, 12:02 |
|
||
|
Как динамически загрузить WYSIWYG редактор?
|
|||
|---|---|---|---|
|
#18+
Исследуя сайт TinyMCE выяснил, что проблемы с AJAX загрузкой оказывается "is well known problem" :). Судя по всему, сделать это все-таки можно, но нужно хорошо понимать JS и прийдется изменить скрипты самого редактора. Методом перебора нашел классный редактор, который поддерживает "чистую" AJAX загрузку. И выглядит просто потрясающе - nicEdit. На порядок проще в понимании и использовании чем другие. Единственно, там какая-то махинация с iframe и у меня иногда крутится индикатор загрузки страницы в браузере, хотя не должен. Но, это уже мелочи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2009, 00:47 |
|
||
|
Как динамически загрузить WYSIWYG редактор?
|
|||
|---|---|---|---|
|
#18+
fckeditor без проблем динамически подгружается при помощи dojo. Правда тяжелый зараза, долго инициируется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2009, 00:32 |
|
||
|
Как динамически загрузить WYSIWYG редактор?
|
|||
|---|---|---|---|
|
#18+
А вообще посмотрел сейчас этот никэдит - заинтересовало. Легкий, вроде основные важные детали умеет делать, перевод строки не уродует вставленными параграфами. И, главное, умеет растягиваться по величине контента, что пипец как сложно дается фцкмонстру. Надо ещё поковырять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2009, 00:44 |
|
||
|
Как динамически загрузить WYSIWYG редактор?
|
|||
|---|---|---|---|
|
#18+
гвоздь в гроб никэдитора описан прямо у них: http://wiki.nicedit.com/XHTML+Compliant+Output помучаюсь пока с фцк :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2009, 01:05 |
|
||
|
Как динамически загрузить WYSIWYG редактор?
|
|||
|---|---|---|---|
|
#18+
зы...перевод строки не уродует вставленными параграфами... Дык и никто не уродует, есть же волшебное сочетание Shift+Enter. То-то и подозрительно. Что этот "никэдит" не contenteditable использует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2009, 01:07 |
|
||
|
Как динамически загрузить WYSIWYG редактор?
|
|||
|---|---|---|---|
|
#18+
ShSerge Дык и никто не уродует, есть же волшебное сочетание Shift+Enter. То-то и подозрительно. Что этот "никэдит" не contenteditable использует? использует использует, второе впечатление хуже первого :) ага, и под редаткором я всем юзерам прямо так и напишу большими красными буквами - хотите перевести строку - не забудьте зажать шифт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2009, 01:40 |
|
||
|
Как динамически загрузить WYSIWYG редактор?
|
|||
|---|---|---|---|
|
#18+
Блин, не видел этого бага. Они вроде предлагают решение авторAnother option that I have recommended which maybe work for some people is to use server side cleanup based strategies such as the PHP's tidy functions to clean the HTML produced by nicEdit. However, this solution wont be available for everyone, adds complexity, and is not ideal. К счастью в моём случае это делается элементарно :), прийду домой попробую как работает в разных браузерах подробней, простой html вроде правильный создавал когда я его тестировал. Было-бы жаль отказываться, классная штуковина ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2009, 20:16 |
|
||
|
Как динамически загрузить WYSIWYG редактор?
|
|||
|---|---|---|---|
|
#18+
В IE не работает, вообще :(. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2009, 11:11 |
|
||
|
Как динамически загрузить WYSIWYG редактор?
|
|||
|---|---|---|---|
|
#18+
(Недописал) ... wrapper.innerHTML = item.html ... old_element.parentNode.replaceChild(new_element, old_element); ... Как оказалось, такой код не работает в IE, как это можно исправить? (html из AJAX присваиваетя к временному элементу wrapper а затем старый элемент в DOM заменяется на новый). В FF работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2009, 11:16 |
|
||
|
Как динамически загрузить WYSIWYG редактор?
|
|||
|---|---|---|---|
|
#18+
ShSerge Дык и никто не уродует, есть же волшебное сочетание Shift+Enter. То-то и подозрительно. Что этот "никэдит" не contenteditable использует? на самом деле проблема найти нормальный и быстрый редактор стоит для меня давно, но все никак они не находятся :) условия - быстрая загрузка и полная кроссбраурезность. Понятно что такие монстры плохо совместимы с понятием "быстро", но все-же надежда теплется. Был бы, например, редактор как в гмейле :) уверен они не делали универсальное средство, а просто напихали квихфиксов там да сям, получив легкий, но достаточно качественный редактор. насчет niceditor - редактор неплох с точки зрения скорости, с точки зрения функционала и внешнего вида есть ряд багов. Проблема кроссбраузерности в том, что режим свободного редактирования все браузеры реализуют по-разному, и чтобы её побороть, нужно на действия пользователя руками фигарить нужные тэги, а не давать это делать браузеру, о чем собственно у них и написано. Я тут подумал, что в принципе на досуге можно поиграться и попробовать приделать к нему пару обработчиков, например, перевода строки, это пока для меня самая актуальная проблема, <p> в IE просто убивает любую попытку нормального форматирования. Другой момент - собственно contenteditable дивы прямо в коде. Да они существенно ускоряют загрузку, но использование ифрейма гарантирует полную изоляцию внешнего кода от редактируемого содержимого, что особенно важно, когда исходный текст сообщения может взяться откуда угодно и содержать что угодно. Допустим онлайн почтовый клиент, он отображает пришедшие извне письма и позволяет их редактировать. Да, предварительная фильтрация на сервере нужна, но там зачастую все не вырежешь, да и распихать сопутствующий разметке css по тэгам тоже не тривиальная задача. в общем да, беспокоят меня все эти редакторы, хочется и быстро и красиво, а получается медленно и так себе :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2009, 12:37 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=306&tid=1455325]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 414ms |

| 0 / 0 |
