Javascript 将tinyMCE添加到动态添加的textarea

Javascript 将tinyMCE添加到动态添加的textarea,javascript,jquery,tinymce,dhtml,Javascript,Jquery,Tinymce,Dhtml,我有一些javascript打开一个lightbox,其中包含动态创建的HTML,包括一些文本区域。那我就 tinyMCE.init({mode: "none", theme: "simple"}); tinymce.execCommand("mceAddControl", true, id); …其中id是一个文本区域的id。我知道id是正确的,因为textarea消失了(它突然显示:作为内联样式没有显示?),但如果我删除该内联样式,textarea将再次显示为未更改,但没有附加tinymc

我有一些javascript打开一个lightbox,其中包含动态创建的HTML,包括一些文本区域。那我就

tinyMCE.init({mode: "none", theme: "simple"});
tinymce.execCommand("mceAddControl", true, id);
…其中id是一个文本区域的id。我知道id是正确的,因为textarea消失了(它突然显示:作为内联样式没有显示?),但如果我删除该内联样式,textarea将再次显示为未更改,但没有附加tinymce编辑器。为什么要应用内联样式,为什么没有附加的编辑器


为Thariama编辑 编辑2-代码包含错误,但修复后仍然无法工作

好的,这里有一个例子来说明这个问题

<html>
    <head>
        <script src="jquery.js" type="text/javascript"></script>
        <script src="tiny_mce.js" type="text/javascript"></script>
    </head>
    <body>
        <ul id="list">
        </ul>    
    </body>

    <template id="thingyTemplate">
        <li>
            <label>Email rich text body:</label>
            <textarea rows="8" cols="50" path="bodyRichText" class="wysiwyg"></textarea>
        </li>
    </template>

    <script>

        var newTemplate = $("#thingyTemplate > *").clone();
        $(newTemplate).find("textarea").attr("id", "myTextArea");
        $("#list").append(newTemplate);

        tinyMCE.init({ mode: "none", theme: "simple" });
        tinymce.execCommand("mceAddControl", false, "myTextArea");

    </script>
</html>

  • 电子邮件富文本正文:
  • var newTemplate=$(“#thingyTemplate>*”).clone(); $(newTemplate).find(“textarea”).attr(“id”,“myTextArea”); $(“#列表”).append(newTemplate); init({模式:“无”,主题:“简单”}); execCommand(“mceAddControl”,false,“myTextArea”);

    当页面加载时,您可以看到template元素,但列表中的clone()副本将消失。如果删除mceAddControl行,模板及其克隆将可见。

    是否尝试延迟调用“文档准备就绪”?可能您的DOM速度不够快,或者在代码中使用了相同的ID;)

    我试过这个:

    tinymce.remove();
        tinymce.init({
            selector: 'textarea',
            setup: function (editor) {
                editor.on('change', function () {
                    editor.save();
                });
            },
            height: 100,
            width: 350,
            menubar: false,
            plugins: [
              'advlist autolink lists link image charmap print preview anchor',
              'searchreplace visualblocks code fullscreen',
              'insertdatetime media table contextmenu paste code',
              'textcolor'
            ],
            toolbar: 'undo redo | insert | styleselectfontselect fontsizeselect | forecolor backcolor | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image',
            content_css: '//www.tinymce.com/css/codepen.min.css'
        });
    

    为我工作。

    调用mceAddControl时,该特定文本区域是否隐藏?确实如此,但即使我在调用mceAddControl之前将其更改为元素可见,它也会在调用时突然消失!这是很奇怪的,不应该发生,你能给我看一个真实的例子吗?你知道TinyMCE v4中的
    模式的替代品是什么吗:“none”
    ?此选项不再可用。似乎他们决定让您对目标进行更多控制,因此您可以直接指定生成编辑器的位置。这对你有帮助吗?
    tinymce.remove();
        tinymce.init({
            selector: 'textarea',
            setup: function (editor) {
                editor.on('change', function () {
                    editor.save();
                });
            },
            height: 100,
            width: 350,
            menubar: false,
            plugins: [
              'advlist autolink lists link image charmap print preview anchor',
              'searchreplace visualblocks code fullscreen',
              'insertdatetime media table contextmenu paste code',
              'textcolor'
            ],
            toolbar: 'undo redo | insert | styleselectfontselect fontsizeselect | forecolor backcolor | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image',
            content_css: '//www.tinymce.com/css/codepen.min.css'
        });