Domanda

Devo disabilitare tasti specifici (Ctrl e Backspace) in Internet Explorer 6.Esiste un trucco del registro per farlo.Deve essere IE6.Grazie.

Modifica lunga:

@apandit:Ops.Ho bisogno di essere più specifico sulla questione del backspace.Quando dico disabilita backspace, intendo disabilitare la capacità di Backspace di imitare il pulsante Indietro del browser.In IE, premere Backspace quando lo stato attivo non è in un campo di immissione testo equivale a premere Backspace (navigare alla pagina precedente).

Per quanto riguarda il tasto Ctrl.Ci sono alcune pagine che hanno collegamenti che creano nuove finestre di IE.Ho attivato il blocco popup, che lo blocca.Tuttavia, facendo clic su Ctrl viene avviata la nuova finestra.

Questo è per un'applicazione kiosk, che attualmente è un'applicazione basata sul Web.I clienti non hanno i fondi in questo momento per rendere il loro sito adatto ai chioschi multimediali.Cose come il filtraggio degli URL e la disabilitazione del campo di immissione dell'URL sono già state eseguite.

Grazie.

È stato utile?

Soluzione

Per quale scopo ti serve questo?Perché disabilitare il backspace sarebbe un inferno per digitare URL o e-mail, ecc.

Potremmo consigliare altre soluzioni alternative se conoscessimo meglio il problema.

MODIFICA 1:
Questo sito sembra avere alcune informazioni su come è fatto.Al momento non posso verificarlo, ma lo esaminerò:http://www.ozzu.com/programming-forum/disable-key-and-back-t44867.html

Modifica 2:
Questo sito web ha alcuni codici chiave:http://www.advscheduler.com/docs/manual/type_sendkeys.htmlSembra che BACKSPACE sia 08.

MODIFICA 3:
Ho trovato altro codice per il blocco, dai un'occhiata a questo:

<script type="text/javascript">var sType = "keypress";</script> 

<!--[if IE]> 
<script type="text/javascript">sType = "keydown";</script> 
<![endif]--> 

<script type="text/javascript"> 
fIntercept = function(e) { 
   // alert(e.keyCode);
  e = e || event.e; 
  if (e.keyCode == 116) { 
   // When F5 is pressed 
   fCancel(e); 
  } else if (e.ctrlKey && (e.keyCode == 0 || e.keyCode == 82)) { 
   // When ctrl is pressed with R 
   fCancel(e); 
  } 
}; 

fCancel = function(e) { 
  if (e.preventDefault) { 
   e.stopPropagation(); 
   e.preventDefault(); 
  } else { 
   e.keyCode = 0; 
   e.returnValue = false; 
   e.cancelBubble = true; 
  } 
  return false; 
}; 

fAddEvent = function(obj, type, fn) { 
  if (obj.addEventListener) { 
   obj.addEventListener(type, fn, false); 
  } else { 
   obj['e'+type+fn] = fn; 
   obj[type+fn] = function() { 
    obj['e'+type+fn](window.event); 
   } 
   obj.attachEvent('on'+type, obj[type+fn]); 
  } 
}; 


fAddEvent(document, sType, fIntercept); 
</script> 

Ok, ora dovresti avere tutto ciò che ti serve per farlo.Per disabilitare il backspace, il codice chiave è 08.Probabilmente puoi semplicemente utilizzare il codice che ho pubblicato solo con lievi modifiche ...:\

Provalo e vedi se è quello di cui avevi bisogno.(Spero che tu sappia come usare Javascript.)

Altri suggerimenti

Non puoi farlo da una pagina web.Uno degli scopi principali di un browser Web è proteggere gli utenti da Internet.Definiscono un insieme molto specifico di cose che i siti web possono fare e la disabilitazione dei pulsanti non è nell'elenco.

D'altra parte, se sei un amministratore di rete e vuoi semplicemente scherzare con i tuoi utenti, potresti essere in grado di farlo tramite alcuni software desktop.Ma non trattenerei il fiato.

Sto usando questa soluzione jQuery (testata su ie6 e Firefox 3.6):

$(document).keydown(function(e) {
    var tag = e.target.tagName;
    var ro = e.target.readOnly;
    var type = e.target.type;
    var tags = {
        INPUT : '',
        TEXTAREA : ''
    };
    if (e.keyCode == 8) {// backspace
        if (!(tag in tags && !ro && /text/.test(type))) {
            e.stopPropagation();
            e.preventDefault();
        }
    }
});    

spero che aiuti qualcuno

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top