2013-05-12 4 views
6

Używam TinyMCE 4, ale dokumentacja jest straszna. Próbuję zapewnić podgląd na żywo zawartości w innym dziale div (poza edytorem). Teraz mam słuchać tych wydarzeń:Dołącz do zdarzenia onExecCommand z TinyMCE 4

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

To działa, gdy tekst zostanie wprowadzony, ale nie wyzwala, gdy polecenia są wykonywane (zmieniając istniejący tekst pogrubiony na przykład).

Wygląda na to, że w TinyMCE 3.x jest zdarzenie onExecCommand, które robi to, co chcę. Ale nie mogę znaleźć żadnej dokumentacji dotyczącej sposobu słuchania globalnego zdarzenia jQuery, tak jak robię to przy pomocy change i init. Czy ktoś wie, jakie zdarzenie wystrzeliwuje?

+0

Nie sugerujemy użycie tinymce4 chyba że jest z wersji beta – Thariama

Odpowiedz

4

W migration guide można znaleźć następujący przykład:

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

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

Więc jednym problemem jest to, aby uzyskać właściwą nazwę wydarzenia i właściwą instancję edytora :) onExecCommand() wydarzenie staje się „ExecCommand” w wersji 4.

Więc dodanie obsługi na wykonanie poleceń powinien wyglądać następująco (upewnij się, że redaktorzy są już zainicjowany podczas wykonywania kodu poniżej):

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

z jakiegoś powodu zdarzeń pożary dwukrotnie gdy polecenie jest wykonywane. Myślę, że przezwyciężysz ten problem.

Chociaż ta metoda nie wykorzystuje powiązań jQuery, działa ona dla mnie i prawdopodobnie rozwiąże również Twój problem.

+0

Wow, że „Old wydarzenie "Kod jest trochę za daleko ... myśli, że to rubin. – alxndr