2 votes

La modale TinyMCE dans la modale JQuery n'est pas modifiable

J'utilise un éditeur tinyMCE à l'intérieur d'une boîte de dialogue modale JQuery UI. Tout fonctionne bien, à l'exception des fonctions de tinyMCE qui ouvrent elles-mêmes une nouvelle modale (les liens, par exemple). Ces modales s'affichent correctement mais les zones de saisie ne sont pas éditables. Le code js est correct selon Firebug et le HTML est assez simple.

Une idée de l'endroit d'où il pourrait provenir ?

Edita:

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

2voto

Harry Points 1143

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

Pour les boîtes de dialogue jQuery UI, vous pouvez procéder ainsi :

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

2voto

Sylvain Points 158

Grâce à @Harry, les excellents gars du bugtracker de TinyMCE ont fourni la solution.

J'ai simplement ajouté le code ci-dessous au sommet de mon script chargé après le DOM, juste avant le chargement de tinyMCE :

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

Elle fonctionne parfaitement, contrairement à celle postée par @Harry.

0voto

Aldi Unanto Points 3396

Votre question nécessite plus de détails pour y répondre, mais vous pouvez essayer ceci :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X