2016-07-28 127 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>