使用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