我可以拦截CKEditor中的击键(Tab键)并替换默认行为吗?我希望tab键插入带边距的div。
答案 0 :(得分:2)
this.editorInstance.on( 'tab', function(evt){
evt.editor.insertHtml('span style="margin-left: 40px;"> </span>');
evt.cancel();
return false;
})
答案 1 :(得分:1)
我使用的是4.4.7版。至少在这里可以通过编辑config.js
来改变TAB键击的行为。使用此代码TAB缩进和SHIFT + TAB例外:
config.keystrokes =
[
[ 09, 'indent' ],
[ CKEDITOR.SHIFT + 09, 'outdent' ]
];
答案 2 :(得分:0)
我解决了这个有点不同的方式。我希望标签排列在所有线上,而不是插入固定宽度的跨度。所以,我插入一个带有'pre'格式的制表符(&amp;#0 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">	</span>';
var tabElement = CKEDITOR.dom.element.createFromHtml(tabHtml, editor.document);
editor.insertElement(tabElement);
ev.cancel();
}
});