2016-07-28 2 views
0

Я не могу понять, как инициализировать два экземпляра tinymce на моей странице.инициализация нескольких экземпляров tinymce

Я пробовал ответ от this question, но не повезло. Нужно ли использовать таймаут, если для завершения инициализации первого (io) потребуется некоторое время, прежде чем начинать инициализацию второго (co)?

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

(не хватает репутации, чтобы добавить комментарий к Albert Израиль). Код работает после фиксации селекторов. Вот 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> 
Смежные вопросы