Динамически добавляйте tinymce в новую текстовую область - PullRequest
7 голосов
/ 01 февраля 2012

Как я могу это сделать

function addTinyText(id, text){
//add textarea to DOM
$('<textarea id="txt'+id+'"></textarea>').append(text).appendTo('body');
//init tineMCE
 tinyMCE.init({
        theme : "advanced",
        plugins : "emotions,spellchecker"
});
//add tinymce to this
tinyMCE.execCommand("mceAddControl", false, 'txt'+id);
}

но в результате каждый раз у нас появляется новая текстовая область + tinyMCE, но нет текста внутри

Что я не прав?

Ответы [ 2 ]

2 голосов
/ 18 декабря 2012

Я очень долго искал ответ на подобную проблему.

Мой контент не был опубликован, даже если я мог заставить редактор появиться.

Я получил его работунапример:

    jQuery('.wysiwyg').tinymce({
      // Location of TinyMCE script
      script_url : 'path/tinymce/tiny_mce.js',

      // General options
      theme : "advanced",
     .........
     .........
     ......... etc

Я использовал стандартный код jquery для инициализации всех текстовых областей с именем класса wysiwyg в качестве объектов tinymce.

После завершения вызова ajax и загрузки нового textarea я запускаю эту функцию:

jQuery(".wysiwyg").each(function(){ 
    tinyMCE.execCommand("mceAddControl",false, this.id);
});

Теперь мой код наконец выложен правильно.

1 голос
/ 03 февраля 2012

строка

$('<textarea id="txt'+id+'"></textarea>').append(text).appendTo('body');

должна быть строка

$('<textarea id="txt'+id+'"></textarea>').text(text).appendTo('body');
...