powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как динамически загрузить WYSIWYG редактор?
11 сообщений из 11, страница 1 из 1
Как динамически загрузить WYSIWYG редактор?
    #35747302
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как можно динамически загрузить 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, как его использовать для сторонних файлов я не понял.
...
Рейтинг: 0 / 0
Как динамически загрузить WYSIWYG редактор?
    #35748154
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исследуя сайт TinyMCE выяснил, что проблемы с AJAX загрузкой оказывается "is well known problem" :).
Судя по всему, сделать это все-таки можно, но нужно хорошо понимать JS и прийдется изменить скрипты самого редактора.

Методом перебора нашел классный редактор, который поддерживает "чистую" AJAX загрузку. И выглядит просто потрясающе - nicEdit. На порядок проще в понимании и использовании чем другие.
Единственно, там какая-то махинация с iframe и у меня иногда крутится индикатор загрузки страницы в браузере, хотя не должен. Но, это уже мелочи.
...
Рейтинг: 0 / 0
Как динамически загрузить WYSIWYG редактор?
    #35749369
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fckeditor без проблем динамически подгружается при помощи dojo. Правда тяжелый зараза, долго инициируется
...
Рейтинг: 0 / 0
Как динамически загрузить WYSIWYG редактор?
    #35749381
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще посмотрел сейчас этот никэдит - заинтересовало. Легкий, вроде основные важные детали умеет делать, перевод строки не уродует вставленными параграфами. И, главное, умеет растягиваться по величине контента, что пипец как сложно дается фцкмонстру. Надо ещё поковырять.
...
Рейтинг: 0 / 0
Как динамически загрузить WYSIWYG редактор?
    #35749399
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гвоздь в гроб никэдитора описан прямо у них:
http://wiki.nicedit.com/XHTML+Compliant+Output
помучаюсь пока с фцк :)
...
Рейтинг: 0 / 0
Как динамически загрузить WYSIWYG редактор?
    #35749400
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы...перевод строки не уродует вставленными параграфами...
Дык и никто не уродует, есть же волшебное сочетание Shift+Enter. То-то и подозрительно. Что этот "никэдит" не contenteditable использует?
...
Рейтинг: 0 / 0
Как динамически загрузить WYSIWYG редактор?
    #35749414
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge
Дык и никто не уродует, есть же волшебное сочетание Shift+Enter. То-то и подозрительно. Что этот "никэдит" не contenteditable использует?
использует использует, второе впечатление хуже первого :) ага, и под редаткором я всем юзерам прямо так и напишу большими красными буквами - хотите перевести строку - не забудьте зажать шифт
...
Рейтинг: 0 / 0
Как динамически загрузить WYSIWYG редактор?
    #35750033
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, не видел этого бага. Они вроде предлагают решение автор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 вроде правильный создавал когда я его тестировал.

Было-бы жаль отказываться, классная штуковина ...
...
Рейтинг: 0 / 0
Как динамически загрузить WYSIWYG редактор?
    #35750507
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В IE не работает, вообще :(.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
            var wrapper = window.document.createElement('div');
            wrapper.innerHTML = item.html

            var new_element = wgui_node_child(wrapper)

            if (!new_element) throw "Invalid AJAX Responce, can't find New Element!"

            var old_element = dojo.byId(item.component_id)
            if (!old_element) throw "Element for Update is not found in DOM!"
            old_element.parentNode.replaceChild(new_element, old_element);
...
Рейтинг: 0 / 0
Как динамически загрузить WYSIWYG редактор?
    #35750509
private
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(Недописал)
...
wrapper.innerHTML = item.html
...
old_element.parentNode.replaceChild(new_element, old_element);
...

Как оказалось, такой код не работает в IE, как это можно исправить?
(html из AJAX присваиваетя к временному элементу wrapper а затем старый элемент в DOM заменяется на новый). В FF работает.
...
Рейтинг: 0 / 0
Как динамически загрузить WYSIWYG редактор?
    #35750630
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge
Дык и никто не уродует, есть же волшебное сочетание Shift+Enter. То-то и подозрительно. Что этот "никэдит" не contenteditable использует?
на самом деле проблема найти нормальный и быстрый редактор стоит для меня давно, но все никак они не находятся :) условия - быстрая загрузка и полная кроссбраурезность. Понятно что такие монстры плохо совместимы с понятием "быстро", но все-же надежда теплется. Был бы, например, редактор как в гмейле :) уверен они не делали универсальное средство, а просто напихали квихфиксов там да сям, получив легкий, но достаточно качественный редактор.
насчет niceditor - редактор неплох с точки зрения скорости, с точки зрения функционала и внешнего вида есть ряд багов. Проблема кроссбраузерности в том, что режим свободного редактирования все браузеры реализуют по-разному, и чтобы её побороть, нужно на действия пользователя руками фигарить нужные тэги, а не давать это делать браузеру, о чем собственно у них и написано. Я тут подумал, что в принципе на досуге можно поиграться и попробовать приделать к нему пару обработчиков, например, перевода строки, это пока для меня самая актуальная проблема, <p> в IE просто убивает любую попытку нормального форматирования.
Другой момент - собственно contenteditable дивы прямо в коде. Да они существенно ускоряют загрузку, но использование ифрейма гарантирует полную изоляцию внешнего кода от редактируемого содержимого, что особенно важно, когда исходный текст сообщения может взяться откуда угодно и содержать что угодно. Допустим онлайн почтовый клиент, он отображает пришедшие извне письма и позволяет их редактировать. Да, предварительная фильтрация на сервере нужна, но там зачастую все не вырежешь, да и распихать сопутствующий разметке css по тэгам тоже не тривиальная задача.
в общем да, беспокоят меня все эти редакторы, хочется и быстро и красиво, а получается медленно и так себе :)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как динамически загрузить WYSIWYG редактор?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]