6

Ho un po 'di codice per creare tasti di scelta rapida per un'applicazione web. Tutti i tasti di scelta rapida funzionano in IE e Firefox, tuttavia Ctrl +PgUp e Ctrl +PgDn non funzionano in Chrome.Impedisci l'impostazione predefinita 'ctrl pageup' e 'ctrl pagedown' in Chrome

Dopo aver cercato le risposte e aver scritto un codice di prova personalizzato, credo di aver determinato che ciò è dovuto al fatto che quegli eventi si attivano, in Chrome, su keyup anziché keydown.

I gestori di Chrome predefiniti per tali eventi vengono attivati ​​anziché il mio (o almeno prima) e il passaggio al browser alla scheda successiva o precedente. Se uso il tasto di scelta rapida per tornare alla scheda con la mia applicazione, i miei gestori prendono l'evento.

Quindi la mia domanda è: esiste un modo per intercettare questi eventi in Chrome e impedire l'esecuzione della funzionalità predefinita?

Il codice in questione è:

  //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; 
      }); 

fa esattamente quello che voglio in IE e Firefox, ma non Chrome. Ho provato evt.preventDefault(), evt.stopImmediatePropagation e evt.stopPropagation. Tuttavia, non funziona (credo perché i miei gestori vengono chiamati dopo i gestori del browser).

+0

Può essere correlato: https://code.google.com/p/chromium/issues/detail?id=149751 (è stato contrassegnato come WontFix) –

+0

Ho deciso di rinunciare a questo per ora. I requisiti erano allentati su quale dovrebbe essere la combinazione di tasti, quindi ho aggiunto il supporto per ctrl + shift + pageup/pagedown per gli utenti di Chrome. Se qualcuno ha una risposta anche se mi piacerebbe sentirla! – John

+0

Dateci un violino con cui lavorare! – ricksuggs

risposta