Редактор 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.