你们不能听听听不休的html编辑的事件。 因此,你需要使用最新的版本。
这部法典可以帮助你(参见第3号联合文件,因此也许需要修改第4版):
Cyber.ui.HtmlEditor = Ext.extend(Ext.form.HtmlEditor, {
frame : true,
initComponent : function() {
Cyber.ui.HtmlEditor.superclass.initComponent.call(this);
this.addEvents( submit );
},
initEditor : function() {
Cyber.ui.HtmlEditor.superclass.initEditor.call(this);
if (Ext.isGecko) {
Ext.EventManager.on(this.doc, keypress , this.fireSubmit,
this);
}
if (Ext.isIE || Ext.isWebKit || Ext.isOpera) {
Ext.EventManager.on(this.doc, keydown , this.fireSubmit,
this);
}
},
fireSubmit : function(e) {
if (e.ctrlKey && Ext.EventObject.ENTER == e.getKey()) {
// Do what you need here
}
}
});
Ext.reg( customeditor , Cyber.ui.HtmlEditor);
并以你的形式:
this.htmleditor = this.addComment.add({
region: center ,
xtype: customeditor ,
margin: 0 0 0 0 ,
enableSourceEdit: false,
height: 200
});
我与《Ext JS 4》进行了很多讨论,并找到了办法(在你使用html编辑之前,你需要列入这一法典):
Ext.form.HtmlEditor.override({
frame : true,
initComponent: function() {
this.callOverridden();
this.addEvents( submit );
},
initEditor : function() {
this.callOverridden();
var me = this;
var doc = me.getDoc();
if (Ext.isGecko) {
Ext.EventManager.on(doc, keypress , me.fireSubmit, me);
}
if (Ext.isIE || Ext.isWebKit || Ext.isOpera) {
Ext.EventManager.on(doc, keydown , me.fireSubmit, me);
}
},
fireSubmit : function(e) {
if (e.ctrlKey && Ext.EventObject.ENTER == e.getKey()) {
// Do what you need here
alert( yes! );
}
}
});