2013-06-28 94 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/

相关问题