关于javascript:用内容初始化tinymce

initialize tinymce with content

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

但是,在tinymce初始化时,我很难做到这一点。已经问过这个问题:用默认内容初始化tinyMCE,但是当时给出的答案至少对tinymce4无效。

这是我尝试过的:

第一次尝试:

1
2
3
4
5
6
7
8
    tinymce.init({
      mode:"textareas",
      ...
      setup: function (editor) {
         ...
         editor.setContent('my content');
      }
   });

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

第二次尝试:

1
2
3
4
5
    tinymce.init({
      mode:"textareas",
      ...
    };
    tinymce.get('editor').setContent('my content');

->未捕获的TypeError:无法读取null的属性'setContent'
(但是,如果我已经加载了包含tinymce编辑器的页面,则可以执行此操作)。

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

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

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

所有这一切也以tinymce.activeeditor.setContent('my content');失败。

我应该在代码中的何处放置tinymce.get('editor').setContent('my content');使其起作用?


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

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

这是一个小提琴。


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

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