用内容初始化tinymce

时间:2014-11-10 08:31:27

标签: javascript tinymce tinymce-4

我有一个包含一个tinymce4编辑器实例的页面。我想用编程方式用一些内容初始化这个编辑器。我知道我必须致电:tinymce.get('editor').setContent('my content');

然而,当tinymce初始化时,我很难做到这一点。这个问题已经被问到:initialize tinyMCE with default content但是当时给出的答案是行不通的,至少对于tinymce4来说。

以下是我的尝试:

第一次尝试:

    tinymce.init({
      mode: "textareas",
      ...
      setup: function (editor) {
         ...
         editor.setContent('my content');
      }
   });

- >未捕获的TypeError:无法读取未定义的属性“body”

第二次尝试:

    tinymce.init({
      mode: "textareas",
      ...
    };
    tinymce.get('editor').setContent('my content');

- >未捕获的TypeError:无法读取null的属性'setContent' (但是如果我在加载包含tinymce编辑器的页面时这样做了,那就可以了。)

第3次尝试(SO 12083361回答):

$(document).ready(function(){
    tinymce.get('editor').setContent('my content');
});

- >未捕获的TypeError:无法读取null的属性'setContent'

所有这一切都失败了tinymce.activeeditor.setContent('my content');

我应该将tinymce.get('editor').setContent('my content');放在我的代码中以使其正常工作?

2 个答案:

答案 0 :(得分:8)

对于版本4,您应该这样做:

tinymce.init({selector:'textarea'});
tinymce.activeEditor.setContent('custom');

这里是fiddle

答案 1 :(得分:0)

我已经使用了init_instance_callback,当编辑器准备好setContent时会触发它。



var options = { ... };
options.init_instance_callback = function (editor) {
    editor.setContent(initialContent);
};
$("some-selector").tinymce(options);