如何在TinyMCE 4中设置内容,最好在$(document).ready()内; 块?

高科技*_*技黑手 10 javascript jquery tinymce-4

正如标题所说,我查阅了官方文档,但它没有工作; 这是我的JavaScript(利用jQuery)代码:

$(document).ready(function() {
    tinymce.init({
        element_format: "html",
        schema: "html4",
        menubar: false,
        plugins: 'preview textcolor link code',
        selector: 'TEXTAREA#rtf',
        toolbar: 'preview | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | blockquote subscript superscript | code'
    });
    tinymce.activeEditor.setContent($('TEXTAREA#rtf').text());
});
Run Code Online (Sandbox Code Playgroud)
  1. 我试图检查tinymcetinyMCE(从Googling得到这个)实例,它们都是对象好的.
  2. 我也试着检查tinymce.activeEditortinyMCE.activeEditor,但他们练得!

(咳嗽)不知何故,在我将所有东西恢复到我现在开始的位置后,它可以工作:

$(document).ready(function() {
    tinymce.init({
        element_format: "html",
        menubar: false,
        plugins: 'preview textcolor link code',
        schema: "html4",
        selector: 'TEXTAREA#rtf',
        toolbar: 'preview | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | blockquote subscript superscript | code'
    });
});
Run Code Online (Sandbox Code Playgroud)

我怀疑这是由于UA缓存或XSLT转换结果缓存引起的问题; 感谢你的宝贵时间!

小智 6

这就是我实现它的方式:

setTimeout(tinyMCE.init({
                            selector: "textarea.edit_notes",
                            height: editor_height,
                            theme: "modern",
                            menubar: "tools table format view insert edit",
                            force_br_newlines : false,
                            force_p_newlines : false,
                            forced_root_block : '',
                            //plugins: "fullpage",
                            valid_elements : '*[*]',
                            setup: function(ed){
                                ed.on("init",
                                      function(ed) {
                                        tinyMCE.get('testeditor').setContent($('#testeditor').val());
                                        tinyMCE.execCommand('mceRepaint');

                                      }
                                );
                            }
                            }), 50);
Run Code Online (Sandbox Code Playgroud)

试一试


Rad*_*čík 5

我发现了更好的解决方案,该解决方案可以在代码中的任何地方使用(并且与setTimeout技巧不同,它不是hack)

tinymce.get('tinymce-element-id').on('init',function(e) {
      e.target.setContent('my custom content');
});
Run Code Online (Sandbox Code Playgroud)


Eri*_*ric 5

该线程使我走上了正确的道路,因此我想与v4分享我的解决方案

tinymce.init({
     ...,
     init_instance_callback:function(editor){
         editor.setContent(__YOUR_CONTENT__);  
     }
});
Run Code Online (Sandbox Code Playgroud)


小智 0

一旦文档处于就绪状态,此代码就会运行,因此,tinymce 唯一要做的就是在 textarea 有内容之前设置内容。一个问题是文本区域中的内容在何处以及如何设置?

其次你可以放入tinyMCE.init({ .... });setTimeOut。

希望这可以帮助。