我正在为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();
};
有没有办法在不更改原始代码的情况下覆盖此行为? 还欢迎任何其他想法!
答案 0 :(得分:0)
看起来我必须将所有对话框内容放在iframe中才能解决这个问题。 如果阻止冒泡的密钥列表是可配置的而不是硬编码的话会很好。
答案 1 :(得分:0)
对于CKEditor 4,我通过在自动完成工作时禁用“确定”按钮解决了这个问题,并在输入失去焦点时再次启用它:
。CKEDITOR.dialog.getCurrent()getButton(" OK&#34)。禁用(); 。CKEDITOR.dialog.getCurrent()getButton(" OK&#34)。使();