3

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

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

...其中id特别是一个文本区域的 id。我知道 id 是正确的,因为那个 textarea 消失了(它突然有display:none作为内联样式?),但是如果我删除那个内联样式,textarea 再次出现不变,但没有附加 tinymce 编辑器。为什么要应用该内联样式,为什么它没有附加的编辑器?


为塔里亚马编辑

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

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

4

2 回答 2

7

我试过这个:

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'
    });

为我工作。

于 2017-04-06T08:52:23.583 回答
1

您是否尝试延迟对“文档就绪”的调用?也许您的 DOM 不够快,或者在您的代码中您的 ID 相同;)

    $(function(){
            tinyMCE.init({ mode: "none", theme: "simple" });
            tinymce.execCommand("mceAddControl", false, "myTextArea");
    });
于 2013-02-08T23:29:16.733 回答