Si potrebbe farlo in questo modo, anche se mi aspetto che potrebbe essere terribilmente lento su pagine più grandi:
$('*').off('keyup keydown keypress');
che sta andando a selezionare ogni singolo elemento della pagina, quindi rimuovere qualsiasi keyup
, keydown
, e keypress
eventi associati a loro.
Se si vuole evitare che l'utente utilizzando il backspace chiave per passare alla pagina precedente, si potrebbe provare il seguente codice:
var inputTags = ['INPUT', 'TEXTAREA'];
$(document).on('keypress', function(e) {
if(e.which === 8 && $.inArray(e.target.tagName, inputTags) === -1)
e.preventDefault();
});
Questo dovrebbe limitare l'uso del tasto backspace, tranne nei casi in cui lo stato attivo è un elemento di input in cui è possibile immettere testo (quindi un <input type="text">
o un <textarea>
).
Dai un'occhiata a questo working demo.
fonte
2013-03-06 10:55:15
questo impedirà alla pagina di reindirizzare alla pagina precedente alla pressione di backspace? –
@MilindAnantwar No, questa è una funzione browser integrata, non un gestore di eventi che viene aggiunto alla pagina usando jQuery. Potresti essere in grado di * aggiungere * un gestore di eventi per impedire che, se questo è il tuo obiettivo, dovrei controllare. –
@MilindAnantwar Ho modificato la mia risposta per includere alcune informazioni su come procedere per evitare di utilizzare il tasto backspace per navigare tra gli elementi precedenti della cronologia. –