В предыдущих приложениях мне удавалось заставить TinyMCE нормально работать. Но в этом веб-приложении многофункциональный редактор отображается нормально, но по какой-то причине я не могу ввести текст в поле расширенного редактора, и когда я нажимаю кнопку, например, для выделения жирным шрифтом, я получаю эту ошибку:
Error: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMNSHTMLDocument.execCommand]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://mysite/tiny_mce/tiny_mce.js :: anonymous :: line 1" data: no]
Source File: http://mysite/tiny_mce/tiny_mce.js
Line: 1
Я хотел бы знать, что я могу сделать, чтобы отладить то, что здесь происходит. Что могло быть причиной этой странной ошибки?
Немного предыстории:
Этот код загружает TinyMCE:
<script type = "text/javascript" src = "http://mysite/tiny_mce/tiny_mce.js"></script>
<script>
tinyMCE.init({
mode : 'none',
editor_selector: 'mceAdvanced',
theme : 'advanced',
theme_advanced_toolbar_location : 'top',
theme_advanced_toolbar_align : 'left',
theme_advanced_buttons1 : 'fontsizeselect,bold,italic,|,bullist,numlist,|,outdent,indent,|,removeformat',
theme_advanced_buttons2: '',
theme_advanced_buttons3: '',
theme_advanced_font_sizes: "1, 2, 3, 4",
width: '600',
height: '200',
remove_script_host : true,
cleanup_on_startup : true,
cleanup: true,
debug : true,
convert_urls : false
});
tinyMCE.execCommand('mceAddControl', true, 'fldOverview');
</script>
<textarea id = "fldOverview" name = "fldOverview" class = "textbox"><?= OVERVIEW ?></textarea>
Проверено на:
FF3 не работает. Опера (последняя стабильная) работает. Windows IE7 работает. Safari (последняя стабильная версия) работает.






Вы выполняете это в Firefox?
Потому что, согласно это, он появляется, когда вы отключаете всплывающие окна в firefox из-за способа блокировки всплывающих окон.
Включите всплывающие окна, и все готово!
Хорошо, нашел ответ и разместил его.
Ответ - здесь.
Дело вот в чем. Вы когда-нибудь пользовались Facebook? Мы пытались реализовать аналогичный интерфейс, в котором вы щелкаете, чтобы редактировать раздел профиля, он сворачивается и снова разворачивается с индикатором выполнения, затем сворачивается и повторно разворачивается с формой профиля. В этой форме профиля у нас был богатый редактор TinyMCE.
Что ж, оказывается, что есть причуда, когда DIV скрываются, а затем отображаются для отображения элемента управления TinyMCE. Это сбивает время, что ли? В любом случае, мы использовали API slideToggle в jQuery, чтобы свернуть и повторно развернуть DIV с новым содержимым, которое мы извлекли с помощью материала jQuery AJAX. И когда мы это сделали, API-интерфейс slideToggle каким-то образом замочил нас.
Исправление заключалось в том, чтобы сделать slideToggle как обычно, но перед тем, как мы загрузим редактор tinyMCE с техникой execCommand, нам нужно использовать show API в jQuery, чтобы гарантировать, что наш DIV будет принудительно открыт и виден в первую очередь. Когда мы это сделали, проблема исчезла.
Действительно полезный ответ! В моем случае это происходило при отображении редактора TinyMCE внутри диалогового окна jQuery (не отображался текст по умолчанию внутри моего текстового поля tinymce'd, плюс невозможно было щелкнуть внутри редактора). Обязательно сначала покажите диалоговое окно, а затем загрузите любой контент динамически (например, содержимое текстового поля по умолчанию + TinyMCE init js)
Включены всплывающие окна. Не исправил. Я также снова отредактировал вопрос, чтобы указать, в каких браузерах я это тестировал. Работает во всех, кроме FF3. Но я могу нормально загружать TinyMCE на других моих сайтах. Как будто мне не хватает тега или чего-то такого?