2012-01-09 16 views
5

Estoy trabajando en un proyecto existente. Tengo que detectar el evento tinyMCE focusout/blur para guardarlo automáticamente a través de AJAX. He encontrado siguiente código de trabajo existente:tinyMCE textarea focusout event?

// reinit tinymce 
$($("#chapterBill div:.module-container")[indexAfter]).find('textarea').each(function(i){ 
    editorId = $(this).attr('id'); 
    tinymce.EditorManager.execCommand('mceAddControl',true, editorId); 
}); 

Puede alguien decirme que cómo capturar TinyMCE área de texto focusout/blur evento?

Gracias

Respuesta

5

No desea capturar textarea focus/blur. Tinymce oculta el antiguo textarea y crea un iframe contento en el que puede ingresar/editar contenido. Este contenido se escribe en el área de texto oculta anterior de vez en cuando (basado en eventos).

Para capturar el enfoque/desenfoque en el editor, necesita establecer un controlador para esto en el iframe de los editores.

poner este código en su init tinymce

setup : function(ed) { 
    ed.onInit.add(function(ed, evt) { 
     tinymce.dom.Event.add(ed.getDoc(), 'blur', function(e) { 
      // Do something when the editor window is blured. 
      alert('blur!!!'); 
     }); 
    }); 
}, 
+1

Pasé muchas horas en esto y finalmente lo conseguí. Gracias. Es una explicación perfecta. – Awan

+1

contento de haber podido ayudar – Thariama

+1

Creo que hay algunos problemas con 'blur' en Google Chrome. Está funcionando perfectamente en Firefox. – Awan

0

yo también estaba trabajando en una solución con el fin de guardar el contenido TinyMCE de forma dinámica a través de AJAX. Muchas respuestas indican configurar esta opción en el init, sin embargo esta conveniencia no estaba disponible para mí, debido al hecho de que el código se estaba usando en varios sistemas. ¿Se requiere una solución página específica, que yo era capaz de poner en práctica este modo:

$(window).load(function(){ 
    tinymce.get('id').on('blur', function(e) { 
     var content = tinymce.get('id'); 
     console.log(content); 
    }); 
}); 

Con id siendo el atributo id establecido en su elemento de área de texto.