使用jQuery模式对话框和MVC.net时,TinyMCE附着然后消失
我有一个按钮,打开一个jQuery模式对话框的MVC.net页面。 我打开我的对话框
$(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是我为某些自定义操作创建的tinyMCE按钮。
当我单击主页上的按钮打开对话框时,对话框将按预期方式打开,但tinymce编辑器在部分对话框弹出框中对着textarea闪烁,然后返回到正常的textarea。 该部分还有一个下拉列表,当更改时,更新tinymce textarea(ajax)的内容,并再次出现textarea,并附上tinymce编辑器,然后返回到正常的textarea。
此外,这是一个模态对话框,何时应该调用以下命令来创建和添加自定义按钮。
tinymce.create
tinymce.PluginManager.add
当我尝试将编辑器附加到我的主页面的textarea中时,一切都按预期工作(编辑器附加到文本区域,显示自定义按钮并正常运行)。
有什么建议么?
我正在使用tinymce编辑器的jQuery版本。
编辑:
我最终回到使用jquery版本的tinyMCE,因为它比UI标准版的功能要好得多。
我设法正确地加载了我的自定义按钮,并且当我关闭并打开对话框时,编辑器可用。
我留下的唯一问题是,在首次打开对话框时,tinyMCE会附加到textarea然后消失。 我决定把我的文档准备好的功能
setTimeout(function () { initTinyMCE(); }, 500);
这有效,但很有趣,但不是解决方案。 所以这里似乎存在时间问题。
我怎样才能确保textarea已经准备好接受tinymce编辑器,或者是tinymce init发射得太早?
我没有使用jQuery版本,所以这是在黑暗中拍摄的。 常规版本不能通过Ajax进行延迟加载。
http://tinymce.moxiecode.com/forum/viewtopic.php?pid=66531#p66531
我使用过的黑客并没有经过广泛的测试,运行如下:
window.tinyMCEPreInit = {base : 'your/js/folder/tinymce', suffix : '', query : ''};
// Lazily load your TinyMCE javascript
window.tinymce.dom.Event.domLoaded = true;
jQuery的tinymce构建是一个问题的来源,它很慢。 我建议使用常规的tinymce构建和附加加载jQuery。
自定义按钮应该在初始化时初始化。 这可以使用自己的插件或setuop初始化参数完成。
链接地址: http://www.djcxy.com/p/61467.html上一篇: TinyMCE attaches then disappears when using jquery modal dialog and MVC.net
下一篇: JQueryUI Dialog Size