2014-12-12 2 views
0

Я хочу, чтобы предотвратить действие по умолчанию FF с помощью настраиваемых ярлыков CKEDITOR.Firefox с ярлыками CKEditor: получить событие в окне CKEDITOR

Я попытался следующий код

CKEDITOR.plugins.add('pluginName', { 
init: function(b) { 
    b.addCommand('cmdName', { /*shortcut CTRL + SHIFT + C*/ 
    exec: function(b) { 
     // functionality 
     b.window.$.event.stopPropagation(); 
    } 
    }); 
} 
}); 

В хромированной b.window. $. Событие дает "keybordEvent". В событии FF b.window. $. Undefined.

Как я могу получить текущее событие в FF

ответ

1

См this JSFiddle. Также посмотрите на CKEDITOR.commandDefinition#exec и CKEDITOR.editor#setKeystroke. Использовать CTRL (CMD) + SHIFT + C для проверки поведения.

CKEDITOR.replace('editor', { 
    plugins: 'toolbar,wysiwygarea,basicstyles', 
    on: { 
     pluginsLoaded: function() { 
      this.addCommand('customCommand', { 
       exec: function(editor) { 
        console.log('Executing', this.name); 

        // Uncomment this to allow default keystroke action. 
        // return false; 
       } 
      }); 

      this.setKeystroke( 
       CKEDITOR.CTRL + CKEDITOR.SHIFT + 67, 
       'customCommand' 
      ); 
     } 
    } 
}); 

Надеюсь, это объяснит проблему. Пока exec возвращает ничего, кроме false, нажатие клавиши по умолчанию (вполне вероятно, панель devtools, то есть Firebug) не будет выполнена.

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