在CKEditor对话框中覆盖ENTER键处理

时间:2011-07-27 10:18:15

标签: javascript keyboard-shortcuts ckeditor

我正在为CKEditor 3.6对话框textinput框添加自动完成功能。 问题是无法使用ENTER键从列表中选择一个值,因为它会关闭对话框并且所有的ENTER键事件都会停止冒泡dom。 我可以在_source / plugins / dialog / plugin.js中看到:

// ESC, ENTER
var preventKeyBubblingKeys = { 27 :1, 13 :1 };
var preventKeyBubbling = function( e )
{                        
    if ( e.data.getKeystroke() in preventKeyBubblingKeys )
        e.data.stopPropagation();
};

有没有办法在不更改原始代码的情况下覆盖此行为? 还欢迎任何其他想法!

2 个答案:

答案 0 :(得分:0)

看起来我必须将所有对话框内容放在iframe中才能解决这个问题。 如果阻止冒泡的密钥列表是可配置的而不是硬编码的话会很好。

答案 1 :(得分:0)

对于CKEditor 4,我通过在自动完成工作时禁用“确定”按钮解决了这个问题,并在输入失去焦点时再次启用它:

CKEDITOR.dialog.getCurrent()getButton(" OK&#34)。禁用(); 。CKEDITOR.dialog.getCurrent()getButton(" OK&#34)。使();