Ckeditor 截获编辑击键

Ckeditor 截获编辑击键,ckeditor,Ckeditor,我可以在CKEditor(tab键)中截取击键并替换默认行为吗?我希望tab键插入一个带边距的div。this.editorInstance.on('tab',function(evt){ this.editorInstance.on( 'tab', function(evt){ evt.editor.insertHtml('span style="margin-left: 40px;">&nbsp;</span>'); evt.cancel();

我可以在CKEditor(tab键)中截取击键并替换默认行为吗?我希望tab键插入一个带边距的div。

this.editorInstance.on('tab',function(evt){
this.editorInstance.on( 'tab', function(evt){

    evt.editor.insertHtml('span style="margin-left: 40px;">&nbsp;</span>');

    evt.cancel();
    return false;
})
evt.editor.insertHtml('span style=“margin left:40px;“>”); evt.cancel(); 返回false; })
我用稍微不同的方法解决了这个问题。我希望选项卡在所有行上对齐,而不是插入固定宽度的范围。因此,我插入了一个带有“pre”格式的制表符(� 9)。我在insertHtml()方面也遇到了困难,不得不使用createFromHtml()和insertElement()的组合

以下是我的解决方案:

// my editor's id is 'summary'
CKEDITOR.replace('summary', { ... });

var editor = CKEDITOR.instances.summary; 
editor.on('key', function(ev) {
    if (ev.data.keyCode == 9) { // TAB
        var tabHtml = '<span style="white-space:pre">&#09;</span>';
        var tabElement = CKEDITOR.dom.element.createFromHtml(tabHtml, editor.document);
        editor.insertElement(tabElement);
        ev.cancel();
    }
});
//我的编辑器的id是“摘要”
CKEDITOR.replace('summary',{…});
var editor=CKEDITOR.instances.summary;
编辑者:开启('键',功能(ev){
如果(ev.data.keyCode==9){//TAB
var tabHtml='	;';
var tabElement=CKEDITOR.dom.element.createFromHtml(tabHtml,editor.document);
编辑器.insertElement(tabElement);
ev.cancel();
}
});

我使用的是4.4.7版。至少在这里,只需编辑
config.js
,就可以更改选项卡按键的行为。使用此代码,制表符缩进和SHIFT+制表符缩进:

config.keystrokes =
[
    [ 09, 'indent' ],
    [ CKEDITOR.SHIFT + 09, 'outdent' ]
];