Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [JavaScript] history.back() - Disabilitazione Backspace

    Ciao a tutti gente,

    più volte mi é stato posta la questione sul come poter disabilitare la funzionalità di Back() dell'oggetto History richiamata tramite il tasto di backspace: può succedere che quando si compila velocemente una form venga perso il focus sugli oggetti, e premendo il tasto backspace ci si trovi sulla pagina precedente.

    Lo scriptino che risolve questo problema é molto semplice, ed é il seguente:

    <script language="JavaScript">
    <!-- Begin

    function stopBack(e) {
    statusID.value = event.srcElement.id ;
    if (event.srcElement.id.toUpperCase() == "BODY" || event.srcElement.id == "") {
    if (window.event.keyCode == 8) {
    alert("Spiacenti, funzionalità INDIETRO tramite backspace disabilitata.");
    return false;
    }
    }
    }

    document.onkeydown=stopBack;

    // End -->
    </script>

    Due paroline per spiegarvi cosa fa: rileva l'evento KeyDown su tutto il documento, controlla qual'é l'ID dell'oggetto scatenante e se l'ID scatenante é nullo (come di solito é quello del BODY) oppure equivale ad un ID scelto da voi (esempio: "BODY") e la chiave premuta é uguale a "8" (codice ASCII del backspace) allora restituisce come valore di ritorno "false", bloccando l'indietreggiamento nell'history.

    Il controllo dell'ID é neccessario se si vuole evitare che il tasto backspace venga bloccato anche sugli oggetti della form come le textbox o le textarea, impedendovi di cancellare ciò che scrivete per correggere eventuali errori. Ovviamente ogni oggetto della vostra form dovrà essere fornito di ID.

    Saluti
    -VTD-

    PS: L'ho testato solo su IE, per NS credo sia sufficiente sostituire l'evento intercettato con "click" (se non ricordo male NS rileva i tasti della tastiera come click).
    Vladislav III din Sighisoara,
    conte di domnitor al Valahiei
    denumit Tepes sau al Dracului


    ...ce tie nu-ti place altuia nu-i face...

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649

    linkata in script / discussioni utili

    statusID.value = event.srcElement.id ;
    era x debug?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.