2016-07-28 302 views
0

我无法弄清楚如何初始化我的页面上的两个tinymce实例。初始化tinymce的多个实例

我试过了this question的答案,但没有运气。如果在开始初始化第一个(co)之前花费一些时间完成初始化(io),我是否需要使用超时?

var io = { 
    selector:"#auth_info_intro textarea", 
    ..., 
    setup:function(ed){ 
     ed.on("init",function(e){ 
     tinyMCE.activeEditor.setContent(obj.INFO.INTRO.TEXT); 
     });   
    } 
}; 
var co = { 
    selector:"#auth_info_conclude textarea", 
    ..., 
    setup:function(ed){ 
     ed.on("init",function(e){ 
     tinyMCE.activeEditor.setContent(obj.INFO.CONCLUDE.TEXT); 
     });   
    } 
}; 
tinymce.init(io); 
tinymce.init(co); 

以上抛出Uncaught TypeError: Cannot read property 'body' of undefined。 我错过了什么?

回答

0

显然,这需要时间来初始化一审一些量,所以我设置的第一个实例的初始化对象的设置参数内的一个暂停,而不是仅仅立即试图初始化第二个实例。这工作:

var io = {}; 
io.selector = "textarea[name=intro]"; 
io.setup = function(ed){ 
    ed.on("init",function(e){ 
      tinyMCE.activeEditor.setContent(obj.INFO.INTRO.TEXT);    
      setTimeout(function(){ 
       var co = {}; 
       co.selector = "textarea[name=conclude]"; 
       co.setup = function(ed){ 
        ed.on("init",function(e){tinyMCE.activeEditor.setContent(obj.INFO.CONCLUDE.TEXT);});       
       } 
       tinymce.init(co); 
      },1000);    
    }); 
tinymce.init(io); 
1

这可能是因为它指向缺少的对象。试试你的选择#auth_info_intro textarea更改为textarea#auth_info_intro#auth_info_conclude textarea,以textarea#auth_info_conclude

0

(没有足够的口碑添加到阿尔伯特以色列评论)。代码在修复选择器后工作。这是一个jsFiddle

<textarea id="auth_info_intro"></textarea> 
<textarea id="auth_info_conclude"></textarea> 

<script> 
var obj = { 
    INFO: { 
    INTRO: { 
     TEXT: "Hello World!" 
    }, 
    CONCLUDE: { 
     TEXT: "Goodbye World!" 
    } 
    } 
}; 
var io = { 
    selector:"textarea#auth_info_intro", 
    setup:function(ed){ 
     ed.on("init",function(e){ 
     tinyMCE.activeEditor.setContent(obj.INFO.INTRO.TEXT); 
     });   
    } 
}; 
var co = { 
    selector:"textarea#auth_info_conclude", 
    setup:function(ed){ 
     ed.on("init",function(e){ 
     tinyMCE.activeEditor.setContent(obj.INFO.CONCLUDE.TEXT); 
     });   
    } 
}; 
tinymce.init(io); 
tinymce.init(co); 
</script>