2013-08-29 3 views
2

При использовании ссылок на ссылки cceditor, изображений и свойств таблицы, если пользователь нажимает на отмену, CKEDITOR проверяет, что-то изменилось, и если это так, то пользователь запрашивает всплывающее окно js confirm.Как удалить подсказку подтверждения по умолчанию в диалоговом окне CKEDITOR?

Как отключить это приглашение на отмену; никакие другие диалоги в наших подсказках webapp не отменены, и это не соответствует.

Невозможно получить список всех обработчиков события, чтобы удалить тот, который выполняет приглашение.

Я не хочу указывать пользовательский isChanged для каждого элемента диалога, чтобы взломать поддельные имена.

Есть ли стандартный способ переопределения базы на (отменить, ...) обработчики событий в CKEDITOR? Я вижу, что я могу обезвредить dialogdefinition.OnLoad, OnOK, обработчики OnCancel, но это принудительное аннулирование запроса, о котором я говорю, не выполняется в OnCancel диалога.

Я использую последнюю версию 4,2

ответ

0

Вы где очень близко. Фактически это фактически событие onCancel. Существует билет на эту проблему, которая также включает в себя обходной путь:

CKEDITOR.on('dialogDefinition', function(dialogDefinitionEvent) { 
    if (dialogDefinitionEvent.data.name == 'link') { 
     var dialogDefinition = dialogDefinitionEvent.data.definition; 
     // Get rid of annoying confirmation dialog on cancel 
     dialogDefinition.dialog.on('cancel', function(cancelEvent) { 
      return false; 
     }, this, null, -1); 
    } 
}); 

Если оставить из if (dialogDefinitioNEvent.data.name == 'link') заявление было бы отключить проверку для всех диалогов.

-1 параметра обработчика является ключевым здесь, как он вставляет обработчик перед обработчиком по умолчанию диалогового плагина, который никогда не будет вызван, потому что return false отменяет барботаж отмены события в других зарегистрированные слушатель событий.

CKEditor Ticket #8331: Ability to ignore "Confirm Cancel"-warning on dialogs

0

Я могу подтвердить, что последняя версия CKEditor работает с атрибутом «noConfirmCancel».

Фрагмент моего рабочего кода выглядит следующим образом:

<script type="text/javascript" src="#ckBasePath#/ckeditor.js" language="JavaScript"></script> 
<script> 
    thisConfig = CKEDITOR.config; 
    thisConfig.autoParagraph = true; 
    thisConfig.fillEmptyBlocks= true; 
    thisConfig.dialog_noConfirmCancel = true; 
    objSample = CKEDITOR.replace('Sample' , thisConfig); 
</script> 

http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-dialog_noConfirmCancel

+0

Вместо добавления «новый ответа» вы должны upvoted существующего ответа, который предоставляет эту информацию, потому что другие люди будут удивляться, что разница между вашим ответом и тем. – AlfonsoML

+0

Спасибо за отзыв. Мой рейтинг репутации еще не позволяет голосовать (возможно, чтобы люди не создавали поддельные учетные записи и не голосовали свои собственные ответы), но я буду продолжать стараться, когда это возможно. Я все равно ценю ваше руководство :). –

Смежные вопросы