在Dijit Editor中输入键处理

时间:2011-03-09 05:08:52

标签: javascript dojo

我正在使用Dijit.Editor构建Mini RTE。 dijit编辑器使用EnterKeyHandling插件(dijit._editor.plugins.EnterKeyHanling),它只负责处理P或Div中的Enter键。

我想扩展这个,添加我自己的功能来处理List元素中的Enter键等。有关如何处理这个的任何建议吗?

1 个答案:

答案 0 :(得分:1)

这实际上应该相当容易。

你可以采取的夫妻方法。

1)Monkey修补现有的EnterKeyHandling插件。

这样的事情:

var oldFunc = dijit._editor.plugins.EnterKeyHandling.prototype.onKeyPressed;
dijit._editor.plugins.EnterKeyHandling.prototype.onKeyPressed = function(){

// Do your stuff ...

oldFunc(arguments);

// Do your stuff ...

}

2)创建自己的插件,使用EnterKeyHandling作为模板/基类 你可以剪切并粘贴EnterKeyHandling源并给它自己的名字,然后破解onKeyPressed方法来做你想要的。

但更好的是将其子类化并使用它而不是标准插件:

dojo.declare("so.MyEnterHandling", dijit._editor.plugins.EnterKeyHandling, {
  onKeyPressed: function(){
     // Do your stuff
     // Either use EnterKeyHandling.onKeyPressed() as a template, or call:
     this.super(arguments);
  }
}

然后像任何其他插件一样使用它:

plugins = "['so.MyEnterHandling']"

注意:代码示例尚未运行,只需键入SO