Закрытие Fancybox после редактирования встроенного TinyMCE приводит к WRONG_DOCUMENT_ERR: DOM Exception 4

У меня есть fancybox, который загружает форму, собирающую пользовательский ввод. В таком виде это редактор tinyMCE. Я использую событие onComplete Fancybox для запуска редактора, и все работает нормально, пока вы не попытаетесь закрыть Fancybox после внесения каких-либо значительных изменений в TinyMCE. Неважно, щелкнете ли вы по X закрытия или позволите ajaxForm вызвать метод закрытия fancybox при отправке.

Fancybox закрывается, но зависает в журнале консоли цикла «WRONG_DOCUMENT_ERR: DOM Exception 4», прежде чем избавиться от теневого наложения. Пробовал отключать оверлей, ничего не изменилось. Страница по-прежнему висит с ошибкой зацикливания.

Подобные ошибки выдаются в Firefox. Я понимаю, что эта ошибка связана с попыткой манипулировать узлами DOM из разных элементов. Я подозреваю, что это потому, что дерево DOM не соответствует тому, которое Fancybox пытается закрыть после добавления элементов в TinyMCE (добавление изображения, элемента списка и т. д. вызывает это).

Кто-нибудь имел дело с подобной проблемой раньше?


person Zac    schedule 07.03.2011    source источник


Ответы (1)


Я немного погуглил, но не нашел решения, поэтому после некоторого тестирования я нашел это решение.

Попробуйте команду onCleanup в параметрах fancybox:

$.fancybox(data_html,{
    onComplete:function(){
        //init tinymce in your form here                
    },
    onCleanup:function(){
        // remove tinymce and all html in your form just 
        // before closing the modal window
        $('#your_form').html('');
    }
});

Надеюсь, поможет!

person Arni Gudjonsson    schedule 18.04.2011