2013-06-28 59 views
4

我試圖移植(https://github.com/NYTimes/ice)到TinyMCE 4的插件需要訪問按鍵事件在由MCE編輯器處理之前,它在3.5.8中與onEvent(...)一起工作,但需要在tinymce 4中遷移到更類似on('event')的東西,但是沒有明顯的選擇。有沒有人知道是否有相當於TinyMCE 3.5.8 Editor.onEvent(...)是在TinyMCE 4.0b1

在微小的MCE 3.5.8我有

  ed.onEvent.add(function(ed, e) { 
       return changeEditor.handleEvent(e); 
      }); 

但我需要更多的東西一樣

   ed.on('event', function(e) { 
        return changeEditor.handleEvent(e); 
       }); 

然而ed.on('event',...)似乎並不在TinyMCE的存在4.

它需要能夠在keydown,keyup和keypress的任何其他事件處理程序之前捕獲刪除鍵。

回答

9

好吧,經過2個工作日試圖讓這個工作,我想出了這個問題是什麼問題。

對於初學者來說,在tinymce 4中沒有與onEvent(...)等效的內容。但是插件無論如何都不需要訪問每個事件。

如果您要移植任何使用onEvent()方法的tinymce插件,那麼您需要確定插件試圖處理的事件,並明確設置每個需要處理的事件的事件處理程序:

   ed.on('mousedown', function(e) { 
        return changeEditor.handleEvent(e); 
       }); 

       ed.on('keyup', function(e) { 
        return changeEditor.handleEvent(e); 
       }); 

       ed.on('keydown', function(e) { 
        return changeEditor.handleEvent(e); 
       }); 

       ed.on('keypress', function(e) { 
        return changeEditor.handleEvent(e); 
       }); 

在我來說,我不僅需要委託鼠標按下,鼠標鬆開,KEYUP,KeyDown和按鍵事件給插件我也不得不以防止它們被編輯/ textarea的過早被解僱:

ed.on('keydown', function(e) { 
    // prevent the delete key and backspace keys from firing twice 
    if(e.keyCode == 46 || e.keyCode==8) 
     e.preventDefault(); 
}); 

因此,以min d如果遇到類似問題。

哦,我在我的github上添加了這個ICE插件的一個分支:https://github.com/catsgotmytongue/ice/

相關問題