2012-08-03 35 views
16

Tengo un área de texto y estoy usando tinyMCE en ese área de texto.Establecer el valor de textarea con javascript después de la inicialización de TinyMCE

Lo que estoy haciendo en realidad es que cuando la página se abre, estoy poblando el área de texto con algo de texto, y después de eso estoy inicializando el tinyMCE.

El problema es cuando estoy tratando de cambiar el valor del área de texto después de la inicialización de tinyMCE, y luego no pasa nada.

Aquí hay un ejemplo.

  1. Crear el área de texto:

    <textarea style="width: 95%;" name="title" id="title"></textarea> 
    
  2. Rellenar el área de texto:

    $('#title').html("someText"); 
    
  3. Inicializando TinyMCE

    tinyMCE.init({ 
         // General options 
         mode : "specific_textareas", 
         theme : "advanced", 
         width: "100%", 
         plugins : "pagebreak,paste,fullscreen,visualchars", 
    
         // Theme options 
         theme_advanced_buttons1 : "code,|,bold,italic,underline,|,sub,sup,|,charmap,|,fullscreen,|,bullist,numlist,|,pasteword", 
         theme_advanced_buttons2 :"", 
         theme_advanced_buttons3 :"", 
         theme_advanced_buttons4 :"", 
         theme_advanced_toolbar_location : "top", 
         theme_advanced_toolbar_align : "left", 
         theme_advanced_statusbar_location : "bottom", 
         valid_elements : "i,sub,sup", 
         invalid_elements : "p, script", 
         editor_deselector : "mceOthers" 
        }); 
    
  4. me gustaría Chan ge el contenido de la Vista de Texto (pero no está funcionando)

he tryed para utilizar el mismo que antes de inicio del TinyMCE

$('#title').html("someModifiedText"); // does not work 

También he probado a lo quite TinyMCE:

if(tinyMCE.getInstanceById('title')) 
    removeTinyMCE("title"); 

Con

function removeTinyMCE (dialogName) { 
    tinyMCE.execCommand('mceFocus', false, dialogName); 
    tinyMCE.execCommand('mceRemoveControl', false, dialogName); 

}

Y Thet de reutilizar:

$('#title').html("someModifiedText"); // does not work 

estoy fuera de ideas ... muchas gracias por su ayuda ....

Respuesta

23

problema aquí es que no verá nada si ingrese texto o html en su área de texto. Tu texto se oculta cuando tinymce se inicializa. Lo que verá entonces es un iframe contento, que se usa para editar y personalizar el contenido. Hay varios eventos que harán que tinymce escriba su contenido en el elemento fuente html del editor (en su caso su área de texto).

Si desea establecer el contenido del editor (que es visible) tendrá que llamar algo así como

tinymce.get('title').setContent('<p>This is my new content!</p>'); 

También es posible que los acces de los elementos DOM directamente utilizando el siguiente

tinymce.get('title').getBody().innerHTML = '<p>This is my new content!</p>'; 

o usando jQuery

$(tinymce.get('title').getBody()).html('<p>This is my new content!</p>'); 
+0

Gracias de nuevo Thariama, estoy geting un error aquí: tinymce.get ('título') no está definido –

+0

consulte [este] (http://www.tinymce.com/wiki.php/API3:method.tinymce.Editor.setContent) – Prasanth

+0

@goldenparrot, gracias, ya probé pero sigue siendo el mismo problema. –

0

Funciona para mí.Sólo tiene que colocar dentro de su código html en lugar de ir tinymce

<textarea> html CONTENT</textarea> 
3

Simplemente esto funciona para mí

$("#description").val(content); 
+3

Esto funciona para la versión 3, pero no en la versión 4. – Sergi

6

Puede utilizar los tinyMCE.activeEditor.setContent('<span>some</span> html');

Check this Answer

+0

Si considera que esta pregunta es un duplicado, debe marcarse como tal. No publique enlaces a otras preguntas sobre el desbordamiento de pila como respuesta. – JAL

+0

lo siento, no noté la misma publicación del usuario. Gracias por la info. –

+0

gran solución !! –

Cuestiones relacionadas