Переопределить обработку клавиши ВВОД в диалоге CKEditor - PullRequest
4 голосов
/ 27 июля 2011

Я добавляю функцию автозаполнения в текстовое поле диалога CKEditor 3.6. Проблема заключается в том, что выбор значения из списка с помощью клавиши ВВОД невозможен, поскольку он закрывает диалоговое окно, и все события клавиши ВВОД останавливаются, чтобы вызвать всплеск. Я вижу это в _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 голосов
/ 20 апреля 2016

Для CKEditor 4 я решил эту проблему, отключив кнопку ОК, когда автозаполнение работает, и включив ее снова, когда ввод теряет фокус:

CKEDITOR.dialog.getCurrent () getButton ( "хорошо") отключить ()..; . CKEDITOR.dialog.getCurrent () getButton ( "ОК") включить ();.

0 голосов
/ 02 августа 2011

Похоже, мне придется поместить все содержимое диалога в iframe, чтобы обойти это. Было бы неплохо, если бы список ключей, предотвращаемых от пузырьков, был настраиваемым, а не жестко закодированным.

...