4

我想在 ckeditor 中获取keydown事件的 keyCode。我的代码看起来有点像这样:

    editor.document.on( 'keydown', function(event) {
   var keycode= event.data.keyCode & ~(CKEDITOR.SHIFT | CKEDITOR.CTRL |CKEDITOR.ALT);
  alert('Key:'+keycode);
  
});

但它总是提醒0。不知道为什么会这样。?

我也想event.preventDefault()从 jQuery 中使用,但我不知道如何在我的 plugin.js 文件中包含 jQuery 库。有什么建议么?

4

1 回答 1

8

如果您想玩得开心,这是正确的代码:

CKEDITOR.instances.editor1.on( 'key', function (evt) {
    var kc = evt.data.keyCode,
        csa = ~(CKEDITOR.CTRL | CKEDITOR.SHIFT | CKEDITOR.ALT);

    console.log(kc, kc & csa);
    // kc & csa is what you need
});

或者,如果您想要更短的代码:

CKEDITOR.instances.editor1.document.on( 'keydown', function (evt) {
    console.log(evt.data.getKeystroke(), evt.data.getKey());
    // getKey() is exactly what you want
});

关于防止默认 - 你不需要 jQuery。CKEditor 是如此庞大的工具,它内置了 DOM 库。您可以在第二个示例中找到preventDefault方法。evt.data

于 2012-06-20T17:41:41.710 回答