我正在尝试使用tinymce 4.7.1(从我较旧的tinymce 4.3.1升级)。当我尝试通过调用方法setContent以编程方式设置tinymce的内容时,它会抛出以下错误:
Cannot read property 'parse' of undefined TypeError: Cannot read property 'parse' of undefined
在查看错误的细节之后,我意识到tinymce期望在它的tinymce.dom中有序列化的类,并且在没有这个类的情况下它无法解析这个错误。
这是来自tinymce的片段
else {
// Parse and serialize the html
if (args.format !== 'raw') {
content = new Serializer({
validate: self.validate
}, self.schema).serialize(
self.parser.parse(content, { isRootContent: true }) //this line is throwing error
);
}
与之前的版本(过去对我工作正常,版本4.3.1)相比,序列化类没有这样的依赖。
有人建议我是否必须添加更多插件或类(默认包中没有提供)以使我的代码正常工作?
我的观察:在一个孤立的原型示例中,当我运行在云上托管的tinymce时,它运行良好。
答案 0 :(得分:1)
是否可以显示一些运行代码,说明您如何使用setContent()
?我怀疑你是在编辑器完全初始化之前尝试调用它,因为init()
方法是异步的。
确保您在编辑器完全初始化之前等待的最简单方法是依赖编辑器提供的init
事件:
tinymce.init({
selector: '#myTextarea',
...
...
setup: function (editor) {
editor.on('init', function () {
editor.setContent('Using the on init stuff!');
});
}
});
答案 1 :(得分:0)
我能够通过@Michael给出的建议来解决这个问题。所以在我的案例中有两个问题。