JQuery模式中的TinyMCE模态不可编辑

时间:2013-06-24 09:00:29

标签: jquery tinymce modal-dialog

我在JQuery UI模式对话框中运行一个tinyMCE编辑器。一切都运行正常,除了那些本身打开一个新模态(例如链接)的tinyMCE的功能。这些模态显示正常,但输入区域不可编辑。 根据Firebug,js代码是可以的,HTML非常简单。

它可能来自哪里?

编辑:

<script type="text/javascript">
tinymce.init({
    selector: "textarea",
    plugins: "autolink link table textcolor",
    menubar: false,
    toolbar: "undo redo | styleselect | forecolor backcolor | bold italic | link unlink | table"
});
$(document).ready(function(){
    $(".sendmail")
        .button({
            icons: {
                primary: "ui-icon-mail-closed"
            },
            text: false
        })
        .click(function(){
            $("#sendmailform").dialog("open");
        })
    ;
    $(function(){
        $("#sendmailform")
            .dialog({
                autoOpen: false,
                title: "Send mail confirmation",
                modal:true,
                width: 750,
                [buttons & ajax]
            })
        ;
    });
});
</script>

3 个答案:

答案 0 :(得分:2)

来自http://www.tinymce.com/develop/bugtracker_view.php?id=5917

对于jQuery UI对话框,您可以这样做:

$.widget("ui.dialog", $.ui.dialog, {
    _allowInteraction: function(event) {
        return !!$(event.target).closest(".mce-container").length || this._super( event );
    }
});

答案 1 :(得分:2)

感谢@Harry,TinyMCE bugtracker的优秀人员提供了解决方案。

我刚刚在DOM之后加载了脚本之前添加了下面的代码,就在加载tinyMCE之前:

$(document).on('focusin', function(e) {
    if ($(event.target).closest(".mce-window").length) {
        e.stopImmediatePropagation();
    }
});

像魅力一样,而@Harry发布的那个没有。

答案 2 :(得分:0)

你的问题需要更多细节才能回答,但你可以试试这个:

tinymce.get('editor_id').getBody().setAttribute('contenteditable', 'false');