При закрытии Fancybox после редактирования встроенного TinyMCE выдает WRONG_DOCUMENT_ERR: DOM Exception 4 - PullRequest
2 голосов
/ 07 марта 2011

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

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

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

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

1 Ответ

2 голосов
/ 18 апреля 2011

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

Попробуйте команду 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('');
    }
});

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

...