Редактор TinyMCE не нравится перемещаться

На странице, которую я имею, мне нужно периодически перемещать редакторы TinyMCE в дереве DOM. Однако по какой-то причине редактор не нравится: он полностью очищается и становится непригодным. Насколько я вижу, это поведение совместимо между Safari 4 и Firefox 3.6, но не Internet Explorer 7/8. Вот пример.

Мне действительно надоело делать что-то, что работает в Internet Explorer, но не с более заметными браузерами. Есть ли что-то, что я пропустил в документах о том, что никогда не пытаюсь переместить редактор в дерево DOM? Есть ли какое-то обходное решение?

Ответ 1

Это ошибка браузера/проблема не проблема с TinyMCE. Невозможно сохранить содержимое iframe в некоторых браузерах, так как после удаления node из dom выгружается документ/окно. Я предлагаю сначала удалить экземпляр редактора, а затем повторно добавить его, а не перемещать его в DOM.

Ответ 2

Имел ту же проблему, и вот как я ее разрешил...

Создать проблему

Я использую jquery для перемещения элемента dom, содержащего редактор tinymce, который заставляет его потерять все содержимое:

$('.form-group:last').after($('.form-group:first'))

После этой точки содержимое редактора iframe удаляется.

Решение

var textareaId = 'id_of_textarea';
tinyMCE.get(textareaId).remove();
tinyMCE.execCommand("mceAddEditor", false, textareaId);

Бывают случаи, когда редактор добавит iframe назад, но не будет видимым. Если это случай, отобразите контейнер:

$textarea = $('#' + textareaId)
$textarea.closest('.mce-tinymce.mce-container').show()

Обратите внимание, что это использование tinymce 4.x.