6

Ich habe einige Code zum Erstellen von Hotkeys für eine Webanwendung. Alle der Hotkeys funktionieren in IE und Firefox, aber Ctrl +PgUp und Ctrl +PgDn arbeiten nicht in Chrome.Verhindern Standard ctrl pageup und ctrl pagedown in Chrome

Nachdem ich nach Antworten gesucht habe und einen benutzerdefinierten Testcode geschrieben habe, glaube ich, dass ich festgestellt habe, dass dies darauf zurückzuführen ist, dass diese Ereignisse in Chrome auf Keyup statt auf Keydown ausgelöst werden.

Die Standard-Chrome-Handler für diese Ereignisse feuern statt meiner (oder zumindest ersten) und wechseln den Browser zur nächsten oder vorherigen Registerkarte. Wenn ich den Hotkey verwende, um zu der Registerkarte mit meiner Anwendung zurückzukehren, fangen meine Handler das Ereignis ab.

Also meine Frage ist, gibt es eine Möglichkeit, diese Ereignisse in Chrome zu fangen und zu verhindern, dass die Standardfunktion ausgeführt wird?

Der Code in Frage:

  //These work in IE and Firefox 
      $(this).bind('keydown', 'ctrl+pageup', (evt) => { 
       this.prevPage(); 
       return false; 
      }); 

      $(this).bind('keydown', 'ctrl+pagedown', (evt) => { 
       this.nextPage(); 
       return false; 
      }); 

      //These catch the event in chrome, but it's too late 
      $(this).bind('keyup', 'ctrl+pageup', (evt) => { 
       this.prevPage(); 
       return false; 
      }); 

      $(this).bind('keyup', 'ctrl+pagedown', (evt) => { 
       this.nextPage(); 
       return false; 
      }); 

Es tut genau das, was ich in IE und Firefox wollen, aber nicht Chrome. Ich habe versucht evt.preventDefault(), evt.stopImmediatePropagation und evt.stopPropagation. Es funktioniert jedoch nicht (ich glaube, weil meine Handler nach den Browser-Handlern aufgerufen werden).

+0

Möglicherweise verwandt sein: https://code.google.com/p/chromium/issues/detail?id=149751 (wurde als WontFix markiert) –

+0

Ich habe beschlossen, dies für jetzt aufzugeben. Die Anforderungen waren lose auf, was die Tastenkombination sein sollte, also fügte ich Unterstützung für ctrl + shift + pageup/pagedown für die Chrombenutzer hinzu. Wenn jemand eine Antwort hat, würde ich es gerne hören! – John

+0

Gib uns eine Geige zum Arbeiten! – ricksuggs

Antwort