2013-05-12 72 views
6

我正在使用TinyMCE 4,但文檔很糟糕。我正試圖提供另一個div(編輯器之外)的內容的實時預覽。現在我正在聽這些事件:用TinyMCE掛鉤onExecCommand事件4

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

輸入文本時,這是工作,但命令執行時它不會觸發(改變現有文本加粗爲例)。

它看起來像TinyMCE 3.x有一個onExecCommand事件,做我想做的事情。但是我找不到任何有關如何監聽全局jQuery事件的文檔,就像我正在使用change和init一樣。有誰知道它正在發射什麼事件?

+0

我建議不要使用tinymce4除非是出於測試狀態 – Thariama 2013-05-13 09:34:06

回答

4

migration guide,你可以找到下面的例子:

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

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

因此,一個問題是要得到正確的事件名稱和正確的編輯器實例:) 的onExecCommand()事件變成「的execCommand」在v4中。在執行命令時

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

出於某種原因,這個事件觸發了兩次:

因此增加上執行命令的處理程序應該是這樣的(以下執行代碼時要確保編輯已經被初始化)。我想你會解決這個問題。

雖然此方法不使用jQuery綁定,但它對我有用,並且可能也會解決您的問題。

+0

哇,這「老事件「代碼有點小......它認爲它是紅寶石。 – alxndr 2013-06-25 17:07:05