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

    Kill backspace, F5 e ALT+Sinistra in un sol colpo (AJAX e non)

    ...e anche l'usabilità, se per questo.

    Ma nel caso il sito/portale/applicativo web a cui state lavorando utilizza AJAX in particolari circostanze (es: un'utente esegue il login e va alla pagina principale, premendo Backspace tornerebbe alla pagina di login con tutti i problemi del caso) o per supportare il backspace/F5 andrebbe riscritto gran parte del codice, eccovi il JS più ricercato del web!

    La particolarità di questo script, a differenza dei tanti altri che abbondano per il web, è che è crossbrowser (di solito questi tipi di script funzionano solo con IE..) e, sopratutto, disabilita i suddetti tasti solo se al di fuori dei campi input o textarea.

    Attenzione: Non è opera mia, io ho semplicemente aggiunto il blocco del tasto F5 e ALT+sinistra e rifinito un pò il codice. Se sapessi chi è l'autore lo linkerei pure, ma non lo ricordo più

    Ma bando alle ciance, ecco il codice:
    codice:
    <script type="text/javascript">
    <!--
    // Kill backspace, F5 e ALT+Sinistra una volta per tutte
    // =====================================================
    
    // Codice per i browser "standard" (notare target)
     if (typeof window.event == 'undefined'){
      document.onkeypress = function(e){
            var test_var=e.target.nodeName.toUpperCase();
            if (e.target.type) var test_type=e.target.type.toUpperCase();
            if ((test_var == 'INPUT' && test_type == 'TEXT') || test_var == 'TEXTAREA'){
              return e.keyCode;
            }else if (e.keyCode == 8 || e.keyCode == 116 || e.keyCode == 37){
              e.preventDefault();
            }
      }
    
    // Codice per Internet Explorer (notare l'srcElement)
     } else {
      document.onkeydown = function(){
            var test_var=event.srcElement.tagName.toUpperCase();
            if (event.srcElement.type) var test_type=event.srcElement.type.toUpperCase();
            if ((test_var == 'INPUT' && test_type == 'TEXT') || test_var == 'TEXTAREA'){
              return event.keyCode;
            }else if (event.keyCode == 8 || event.keyCode == 116 || event.keyCode == 37){
              event.returnValue=false;
            }
      }
     }
    //-->
    </script>
    un link a questa discussione in font-size:1px negli script utili non me lo merito, neh?


  2. #2
    Ho modificato un pò il codice, ho aggiunto anche i campi PASSWORD e FILE alle esclusioni, eccovi il nuovo codice:
    codice:
    <script type="text/javascript">
    <!--
    // Kill backspace, F5 e ALT+Sinistra una volta per tutte
    // =====================================================
    
    // Codice per i browser "standard"
     if (typeof window.event == 'undefined'){
      document.onkeypress = function(e){
            var test_var=e.target.nodeName.toUpperCase();
            if (e.target.type) var test_type=e.target.type.toUpperCase();
            if ((test_var == 'INPUT' && (test_type == 'TEXT' || test_type == 'PASSWORD' || test_type == 'FILE')) || test_var == 'TEXTAREA'){
              return e.keyCode;
            }else if (e.keyCode == 8 || e.keyCode == 116 || e.keyCode == 37){
              e.preventDefault();
            }
      }
    
    // Codice per Internet Explorer
     } else {
      document.onkeydown = function(){
            var test_var=event.srcElement.tagName.toUpperCase();
            if (event.srcElement.type) var test_type=event.srcElement.type.toUpperCase();
            if ((test_var == 'INPUT' && (test_type == 'TEXT' || test_type == 'PASSWORD' || test_type == 'FILE')) || test_var == 'TEXTAREA'){
              return event.keyCode;
            }else if (event.keyCode == 8 || event.keyCode == 116 || event.keyCode == 37){
              event.returnValue=false;
            }
      }
     }
    //-->
    </script>

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.