2015-02-24 18 views
5

Ho creato un'applicazione Web ASP.net MVC4 utilizzando C#, che possiamo creare dinamicamente scorciatoie da tastiera per tutte le pagine. E possiamo usare le scorciatoie da tastiera istantaneamente per andare a una pagina specifica.E il problema è tutti i browser hanno un proprio difetto shortcuts.For esempioIgnora le scorciatoie del browser con le mie scorciatoie personalizzate

Se creo la scorciatoia da tastiera CTRL + Un dovrebbe reindirizzare alla mia pagina personalizzata. Ma la scorciatoia del browser predefinita CTRL + A seleziona invece tutto dalla pagina.

Desidero disattivare le scorciatoie del browser predefinite per dare priorità ai miei collegamenti personalizzati. È questo il modo per raggiungerli? Per le mie scorciatoie personalizzate, ho usato l'evento keyUp di jQuery. Ho cercato su internet, ci sono suggerimenti sull'evento keyUp di jQuery, uso preventDefault(). Ma per accedere alle mie scorciatoie personalizzate, sto usando l'evento keyUp.So dimmi suggerimenti per disabilitare default scorciatoie del browser in tutti i browser C#, jquery o in qualsiasi altro modo.

+0

Sono abbastanza sicuro che questo non è possibile, per lo meno non funzionerà in modo affidabile su tutti i browser. Puoi ascoltare gli eventi chiave usando 'keydown' e controllare l'evento per vedere se CTRL è stato premuto, ma il chrome del browser sovrascriverà qualsiasi scorciatoia apportata in JS. –

risposta

6

Questo vi permetterà di fare questo:

e.ctrlKey && String.fromCharCode(kc).toUpperCase() 

controlli per Ctrl +A essere premuti.

$(document).on('keydown', function(e) { 
 
    var kc = e.which || e.keyCode; 
 

 
    if (e.ctrlKey && String.fromCharCode(kc).toUpperCase() == "A") { 
 
    e.preventDefault(); 
 
    console.log(String.fromCharCode(kc).toUpperCase()); 
 
    window.location.href = 'your url here'; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
adfasfasdfsda
si dovrebbe fare clic nel documento di mettere a fuoco e poi si può testarlo.

+0

Se Ctrl + F1 è la mia scorciatoia key.but in IE default sta aprendo un nuovo browser IE. Ho provato questo codice ma ancora non lo uso. – venki

+0

La tua risposta è utile per ottenere i tasti di scelta rapida come ctrl + A, ctrl + P ... ma arrivando a ctrl + F1 a F12 o alt + F1 a F12 o shift + F1 a F12, non riesco a ottenere quelle cose. – venki

-1

Hai avuto la procedura corretta. Immagino che tu possa usare i valori ascii per manipolare cose del genere ad esempio: lo uso per premere il tasto invio.

$('body').on('keypress', '#Selector-Id', function(e) { 
if (e.which == 13) { 
alert("Hi"); 
} 
}); 
+0

Che cos'è '.scratch-input' in questo codice ?? – venki

+0

Basta trovare i codici ascii per il controllo e a e dare quei valori invece di 13 (che è inserire il codice ASCII del pulsante) e lo aiuta molto, credo! – Ila

Problemi correlati