CKEditor плавный setData

В настоящее время я использую CKEditor, чтобы иметь возможность редактировать и просматривать документы в моей базе данных SQL. Если я изменю содержимое документа в базе данных sql, он должен автоматически обновить экземпляр CKEditor новым текстом. Моя единственная проблема заключается в том, что он мигает при каждом обновлении (т. Е. Он становится пустым, а затем обновляется до нового текста). Кто-нибудь знает, как сделать плавный переход? Я также использую JQuery, поэтому не уверен, что там можно что-то использовать для плавного перехода к новому тексту.

CKEDITOR.instances.content.setData("data");
CKEDITOR.instance.content.setData("new data");

Переход от данных к новым данным будет иметь небольшую задержку.


person tiantang    schedule 28.03.2013    source источник


Ответы (2)


Невозможно избежать легкого мерцания при установке данных во фреймовом (на основе плагина wysiwygarea) экземпляре редактора. Это связано с тем, что все содержимое iframe, содержащего вашу работу, должно быть создано заново. Это просто проще простого и я не думаю, что мы сможем обойти эту штуку.

Я бы порекомендовал вам поиграть с element.setHtml( html ) для редактирования:

CKEDITOR.instances.editor1.editable().setHtml( '<p>FooBar</p>' );

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

P.S. Вы, вероятно, также захотите кэшировать editor1.editable() объект для ускорения работы.


Некоторые основные разработчики CKEditor активно работают над переполнением стека.

Ага. Мы ;)

person oleq    schedule 28.03.2013
comment
Спасибо за ответ. Я в значительной степени избавился от мерцания с помощью плагина **divarea**. Проблема readOnly, которая у меня была, также была решена. Оказывается, Javascript выполнял запрос на установку редакторов только для чтения до того, как экземпляры редактора были готовы. Добавление on instanceready устранило проблему. - person tiantang; 29.03.2013

Кажется, что экран мерцает, потому что страница перезагружает iframe в редакторе. Используя плагин divarea для CKEditor, я могу избавиться от мерцания. Единственная проблема сейчас в том, что свойство CKEditor.readOnly больше не работает...

person tiantang    schedule 28.03.2013
comment
Ckeditor — это довольно сложный инструмент. Если вы действительно впечатлены, опубликуйте его на форуме ckeditor или отправьте напрямую в ckeditor, связавшись с нами. Если вам повезет, они ответят вам - person SRy; 28.03.2013
comment
Не беспокойтесь, они чаще отвечают здесь, чем на других форумах. Некоторые основные разработчики CKEditor активно работают над переполнением стека. Но при желании всегда можно попробовать. - person Spons; 28.03.2013