2011-01-05 7 views
5

Cuando inicializas un editor tinyMCE, he notado dos maneras diferentes de llamar cuando se crea el editor.callback de instalación de tinyMCE versus onAddEditor

Una forma es utilizar la devolución de llamada de instalación que forma parte de tinyMCE.init:

tinyMCE.init({ 
    ... 
    setup : function(ed) { 
     // do things with editor ed 
    } 
}); 

La otra forma es para conectar a la onAddEditor evento:

tinyMCE.onAddEditor.add(function(mgr,ed) { 
    // do things with editor ed 
}); 

¿Cuáles son las diferencias entre el uso de estos dos métodos?

¿Está el editor en un estado diferente en uno frente al otro? Por ejemplo, las cosas aún no están cargadas si intento acceder a las propiedades en el objeto editor.

¿Cuáles son las razones para usar una sobre la otra?

Respuesta

4

La diferencia aquí es que tinyMCE.onAddEditor agrega código a ser ejecutado enel evento y fuegos AddEditor cuando se añade una nueva instancia del editor de la colección tinymce mientras el ajuste setup le permite añadir eventos al editor. Se ejecuta antes de que se renderice la instancia del editor.

Otra diferencia es que setup es que se establece dentro de la llamada tinymce inicialización (el valor de configuración), mientras que onAddEditor por lo general se vuelve a llamar dentro de un plugin tinymce (pero también se puede establecer dentro de la función de configuración).

+0

Tengo las diferencias sobre dónde puedes configurarlas. Estoy tratando de entender por qué usarías uno sobre el otro? ¿Hay acciones que pueda tomar en un editor que solo funcionaría en una de esas devoluciones? –

+0

usaría la devolución de llamada de configuración si no quisiera crear un plugin propio (en mi caso yo uso el modo: "textareas", entonces no uso addControl para inicializarlos) – Thariama

+0

En cuanto a interferir con la inspección del editor y jugando con su dom, ¿usaría la configuración causar un problema ya que se llama antes? –

3

onAddEditor.add da la advertencia en la última TinyMCE 4:

Deprecated TinyMCE API call: <target>.onAddEditor.add(..) 

.on(nameofevent, function(){...}) es la forma correcta de hacer esto en mce4 si usted no tiene el plugin de compatibilidad hacia atrás.