TinyMCE和JQuery对话框:TinyMCE只在模态时读取:对话框中为true

时间:2012-07-09 10:18:39

标签: jquery tinymce modal-dialog jquery-dialog

我在Dialog插件中使用TinyMCD插件。

一切正常,直到我将对话框的模态参数设置为true。 当我这样做时,TinyMCE textarea仅在第一次打开对话框时才能正常工作,然后变为只读。

以下是我的代码示例:

tinyMCE.init({ mode: 'none' });
        var dlgComments = $('#dlgInternalComments');
        if (dlgComments.length == 0)
        {
            dlgComments = $('<div/>').attr('id', 'dlgInternalComments'),
                txtAreaComments = $('<textarea/>').attr('id', 'txtInternalComments').appendTo(dlgComments);

            dlgComments.dialog({
                height: 300,
                width: 800,
                modal:true,
                open: function ()
                {
                    if ($('#txtInternalComments_parent', $(this)).length == 0)
                    {
                        var ddd = {mode:'none'}; //$.extend({}, Globals.RichTextBox, { mode: 'none' });
                        txtAreaComments.tinymce(ddd);
                    }
                },
                buttons: {
                    'Parse': function ()
                    {
                        processAuthorsParagraph();
                        $(this).dialog('close');
                    }
                }
            });
        }
        else
        {
            dlgComments.dialog('open');
        }

我不知道如何解决这个问题。我从这里尝试了一些建议:http://www.codestumps.com/2011/05/adding-tinymce-into-a-jquery-ui-dialog/但我还没有找到解决方案。

如果你能帮助我,非常感谢你。

1 个答案:

答案 0 :(得分:2)

问题已解决,这是完整的工作代码:

function removeTinyMCE () {
    tinyMCE.execCommand('mceFocus', false, 'dialog-modal');
    tinyMCE.execCommand('mceRemoveControl', false, 'dialog-modal');
}

function addTinyMCE() {
    jQuery('#dialog-modal').tinymce({
        script_url: '/js/tiny_mce_3.2.7_jquery/jscripts/tiny_mce/tiny_mce.js',
        width: "800px",
        mode: "textarea",
        theme : "simple",
    });
}

function addAuto()
{
    $('#dialog-modal').dialog({
        autoOpen: true,
        modal: true,
        title: "Email Dialog",
        open: addTinyMCE,
        close: function() {
            removeTinyMCE();
            $(this).dialog('destroy');
        },
        buttons:  {
            'Cancel': function() {
                processAuthorsParagraph();
                removeTinyMCE();
                $(this).dialog('destroy');   
            }
        }
    });
}

对话框的html是:

<div style="display: none"; id="dialog-modal" title="Basic modal dialog" style="display: none" ></div>