我有一个包含一个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');
放在我的代码中以使其正常工作?
答案 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);