2016-10-04 58 views
0

我的tinymce工作正常,但setcontent只能在加载一次后才能工作(它没有内容),但是在关闭并重新打开之后,它就是内容。tinymce setcontent仅在第二次加载时加载

JS:

tinymce.remove(); 
    tinymce.init({ selector: 'textarea' }); 
    tinyMCE.activeEditor.setContent(r.htmleditorcontent); 

错误第一次加载:

TypeError: n.parser is undefined 

..."SetContent",t)):("raw"!==t.format&&(e=new s({validate:n.validate},n.schema).ser... 

错误只如果你想内容加载到TinyMCE的,你可以使用页面加载发生在第一次加载

回答

2

setContent函数来做到这一点......但是在你尝试使用setContent()之前,你需要确保TinyMCE已经初始化。在您的示例中,您可以拨打init,然后立即呼叫setContent()而不检查编辑器是否已加载。

执行所需操作的最佳方法是将代码加载到TinyMCE的配置对象中。例如:

tinymce.init({ 
    ... 
    setup: function (editor) { 
    editor.on('init', function() { 
     this.setContent("<p>My new content</p>"); 
    }); 
    } 
    ... 
}); 

init功能将不会被调用,直到编辑完成初始化,所以你肯定是万事俱备了setContent()代码调用之前。

我还会注意到你的代码使用tinymce.activeEditor - 它返回“当前活动的编辑器实例”。您没有活动的编辑器实例,直到有人点击编辑器才能使用它,以便在代码运行时没有活动的编辑器。使用init可确保您可以通过this定位该TinyMCE的特定实例。

相关问题