2013-05-12 8 views
6

Sto usando TinyMCE 4 ma la documentazione è terribile. Sto cercando di fornire un'anteprima live del contenuto in un altro div (all'esterno dell'editor). In questo momento sto ascoltando questi eventi:Accedi all'evento onExecCommand con TinyMCE 4

$(document).on('tinymce:changed tinymce:init', ...) 

Questo è il lavoro quando si inserisce del testo, ma non attiva quando vengono eseguiti i comandi (modifica del testo esistente in grassetto, per esempio).

Sembra in TinyMCE 3.x c'è un evento onExecCommand che fa ciò che voglio. Ma non riesco a trovare alcuna documentazione su come ascoltare l'evento jQuery globale come sto facendo con change e init. Qualcuno sa quale evento sta sparando?

+0

io non suggerisco di usare tinymce4 meno che non sia fuori fase beta – Thariama

risposta

4

Nel migration guide è possibile trovare il seguente esempio:

// Old event 
editor.onInit(editor, args) { 
    // Custom logic 
}); 

// New event 
editor.on('init', function(args) { 
    // Custom logic 
}); 

Quindi l'unico problema è quello di ottenere il nome evento e l'istanza editor di destra :) Il onExecCommand() evento diventa 'ExecCommand' nella v4.

quindi l'aggiunta di un gestore su esecuzione di un comando dovrebbe essere simile a questo (essere sicuri che gli editori stanno già inizializzate durante l'esecuzione di codice qui sotto):

for (ed_id in tinymce.editors) { 
    tinymce.editors[ed_id].on('ExecCommand', function(args) { 
     alert(1); 
    }); 
} 

per qualche motivo questo evento si attiva due volte quando viene eseguito il comando. Penso che supererai questo problema.

Sebbene questo metodo non utilizzi i collegamenti jQuery, funziona per me e probabilmente risolverà anche il problema.

+0

Wow, che "Vecchio evento "Il codice è un po 'fuori ... pensa che sia rubino. – alxndr