Отмена действий по умолчанию для сочетаний клавиш - PullRequest
0 голосов
/ 01 марта 2012

Я нашел пару вопросов по этому поводу здесь, но не могу найти решение.

    //Add keyboard shortcuts for convenience.
self.iframe.addEventListener('keydown', function(e){
  //Check for alt+p and make sure were not in fullscreen
  if(e.altKey && e.keyCode === 80 && !fullScreenApi.isFullScreen()){
    self.preview();
  }
  //Because Macs e == 69, but alt+e == 229 which is the ´ character,
  if(e.altKey && e.keyCode === 69 || e.keyCode === 229){
    e.preventDefault ? e.preventDefault() : e.returnValue = false;
    console.log(e.returnValue);
    if(!fullScreenApi.isFullScreen()){
      self.edit();
    }
  }
  //Check for alt+f
  if(e.altKey && e.keyCode === 70){
    e.preventDefault ? e.preventDefault() : e.returnValue = false;
    fullScreenApi.requestFullScreen(fsElement);
  }
});

То, что я пытаюсь сделать, это отменить действие по умолчанию для alt+E в Internet Explorer 9. В настоящее время он выполняет то, что я хочу, но в то же время отбрасывает «edit»меню вниз.Я нашел в Интернете людей, использующих e.returnValue = false в качестве решения, но это не сработало.console.log(e.returnValue) вернуло неопределенное.

Заранее спасибо!

1 Ответ

0 голосов
/ 01 марта 2012

Вполне может быть, что в IE нет способа сделать это.Я помню, как пытался создать обработчик событий, который бы обрабатывал Ctrl + Click.К сожалению, в IE это порождает новую вкладку браузера, и поведение жестко запрограммировано в браузере, по-видимому, независимо от его движка JS.

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

РЕДАКТИРОВАТЬ.).Не могу гарантировать, что это поможет, но может.

...