动态加载js时,不能使用微小的mce

YuC*_*YuC 4 tinymce initialization init dynamic-loading

我有TinyMCE的,当我把麻烦<script type="text/javascript" src="/scripts/tiny_mce/tiny_mce.js"><head>,并把初始化代码之前<textarea class="tinyMceEditor">,它工作正常.init代码是这样的:

                    tinyMCE.init({
                        mode : "specific_textareas",
                        editor_selector : "tinyMceEditor",
                        plugins : "inlinepopups,advlink",
                        convert_urls : false,
                        theme : "advanced",
                        theme_advanced_buttons1 : "link,unlink",
                        width: "602",
                        height: "175",
                        theme_advanced_statusbar_location : "none"}); 
Run Code Online (Sandbox Code Playgroud)

但是现在,我想推迟加载tiny_mce.js,当用户第一次点击一个按钮时,将加载tiny_mce.js,然后追加<textarea class="tinyMceEditor"><body>,然后使用前面的代码执行init工作,但是这个时间,它不会初始化tinyMCE编辑器,它只显示<textarea class="tinyMceEditor">

谷歌搜索,但没有发现与此有关,任何人都遇到了这个问题?

任何建议将不胜感激.

我查看了chrome web开发人员工具,发现如果我动态加载tinymce.js,其他需要的js,如en.js,editor_template.js,editor_plugin.js等将不会被加载.即使我将这些js文件添加到动态加载中,仍然无法使用tinymce.


感谢您的帮助,我看着萤火虫,我也得到追加载入前tinymce.js <textarea<body>,然后我追加<textarea>,做TinyMCE的init(),我使用LazyLoad(jQuery插件)来动态加载js文件.

这就是我所做的

if(typeof TinyMCE == "undefined"){
    //dynamically load the tinymce.js
    LazyLoad(['tinymce.js'],function(){
        //callback function, called after tinymce is loaded
        $('body').append('<textarea class="TinyMceEditor"/>');
        tinyMCE.init({init settings});
    });
}
Run Code Online (Sandbox Code Playgroud)

如果我不动态加载tinymce.js,只需放入一个<script>标签<head>,tinyMCE就可以进入,但是当我动态加载tinymce.js时,它不起作用.有这个想法吗?

YuC*_*YuC 27

经过一天的工作,终于找到了解决方案,就这样放了

 window.tinymce.dom.Event.domLoaded = true;
Run Code Online (Sandbox Code Playgroud)

之前

 tinymce.init();
Run Code Online (Sandbox Code Playgroud)

然后可以正确地进行.