У меня есть страница MVC.net с кнопкой, которая открывает модальное диалоговое окно jquery. Я открываю свой диалог вот так
$(dialogId).dialog(
{
dialogClass: 'test', closeOnEscape: true,
title: title,
height: height,
width: width,
minHeight: minHeight, maxHeight: maxHeight,
minWidth: minWidth, maxWidth: maxWidth,
resizable: resizable,
modal: true,
show: 'blind',
hide: 'blind',
open: addTinyMCE
});
addTinyMCE - это функция, которая живет в моей части, а часть - это содержимое для модальной части. Добавить крошечный код MCE выглядит следующим образом
function addTinyMCE() {
$('#emailMessage').tinymce({
script_url: '/Scripts/tiny_mce/tiny_mce.js',
theme: "advanced",
plugins: "myButton,autolink,lists,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
theme_advanced_buttons1: "xedomenubutton,undo,redo,bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull",
theme_advanced_buttons2: "formatselect,fontselect,fontsizeselect",
theme_advanced_buttons3: "bullist,numlist,|,outdent,indent,|,link,unlink,anchor,image,|,insertdate,inserttime,|,forecolor,backcolor,|,fullscreen",
theme_advanced_toolbar_location: "top",
theme_advanced_toolbar_align: "left",
theme_advanced_resizing: true,
skin: "o2k7",
template_external_list_url: "js/template_list.js",
external_link_list_url: "js/link_list.js",
external_image_list_url: "js/image_list.js",
media_external_list_url: "js/media_list.js"
});
}
myButton - это крошечная кнопка MCE, которую я создал для некоторых пользовательских действий.
Когда я нажимаю кнопку на моей главной странице, чтобы открыть диалоговое окно, диалоговое окно открывается, как и ожидалось, но редактор tinymce мигает напротив текстовой области во всплывающем окне частичного диалога и затем возвращается к обычной текстовой области. У части также есть выпадающий список, который при изменении обновляет содержимое текстовой области tinymce (ajax), и снова текстовая область появляется с присоединенным редактором tinymce, а затем возвращается к нормальной текстовой области.
Кроме того, это модальное диалоговое окно, когда следует вызывать следующие команды для создания и добавления пользовательской кнопки.
tinymce.create
tinymce.PluginManager.add
Когда я пытаюсь присоединить редактор к текстовой области на моей главной странице, все работает как положено (редактор прикрепляется к текстовой области, отображается пользовательская кнопка и работает правильно).
Есть предложения?
Я использую jquery-версию редактора tinymce.
EDIT:
В конце концов я вернулся к использованию JQuery версии tinyMCE, так как она работала гораздо лучше с UI Dialog, чем стандартная версия.
Мне удалось правильно загрузить пользовательскую кнопку, и редактор закрылся, когда я закрыл и открыл диалоговое окно.
Единственная проблема, с которой я остаюсь - это то, что при первом открытии диалога tinyMCE присоединяется к текстовой области, а затем исчезает. Я решил добавить в свой документ готовую функцию
setTimeout(function () { initTinyMCE(); }, 500);
и это работает, интересно, но не решение.
Похоже, здесь есть проблема с синхронизацией.
Как я могу убедиться, что текстовая область готова к использованию редактора tinymce или инициализация tinymce запускается слишком рано?