2008-09-12 13 views
0

Je dois désactiver des clés spécifiques (Ctrl et Retour arrière) dans Internet Explorer 6. Y at-il un hack de registre pour le faire. Ce doit être IE6. Merci.Désactiver des clés spécifiques dans IE 6

Modifier Long:

@apandit: Whoops. J'ai besoin de plus de détails sur le retour arrière. Quand je dis désactiver le retour arrière, je veux dire désactiver la possibilité pour Backspace d'imiter le bouton Précédent du navigateur. Dans Internet Explorer, le fait d'appuyer sur Retour arrière lorsque le focus n'est pas dans un champ de saisie de texte équivaut à appuyer sur Retour (navigation vers la page précédente). En ce qui concerne la touche Ctrl,

Il y a quelques pages qui ont des liens qui créent de nouvelles fenêtres IE. J'ai le bloqueur de popup activé, qui bloque cela. Cependant, le fait de cliquer sur Ctrl entraîne le lancement de la nouvelle fenêtre.

Ceci est pour une application de kiosque, qui est actuellement une application Web. Les clients n'ont pas les fonds en ce moment pour rendre leur kiosque convivial. Des choses comme le filtrage d'URL et la désactivation du champ de saisie d'URL sont déjà effectuées.

Merci.

Répondre

0

Pour quoi avez-vous besoin de cela? Parce que désactiver le retour arrière serait un enfer pour taper des urls ou des courriels, etc.

Nous pourrions vous recommander d'autres solutions si nous connaissions mieux le problème.

EDIT 1:
Ce site Web semble contenir des informations sur la façon dont cela est fait. Je ne peux pas vérifier actuellement, mais je vais l'examiner: http://www.ozzu.com/programming-forum/disable-key-and-back-t44867.html

Edit 2:
Ce site a des codes clés: http://www.advscheduler.com/docs/manual/type_sendkeys.html Il semble Backspace 08.

EDIT 3:
trouvé un peu plus de code pour bloquer, vérifier cela:

 

<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, maintenant, vous devriez avoir tout ce que vous devez le faire. Pour désactiver le retour arrière, le code clé est 08. Vous pouvez probablement utiliser le code que j'ai posté avec de légères modifications seulement ...: \

Essayez-le et voyez si c'est ce dont vous aviez besoin. (J'espère que vous savez comment utiliser Javascript.)

0

Vous ne pouvez pas le faire à partir d'une page Web. L'un des principaux objectifs d'un navigateur Web est de protéger les utilisateurs d'Internet. Ils définissent un ensemble très spécifique de choses que les sites Web peuvent faire, et la désactivation des boutons ne figure pas dans la liste. D'un autre côté, si vous êtes un administrateur réseau et que vous voulez simplement jouer avec vos utilisateurs, vous pourrez peut-être le faire via un logiciel de bureau. Mais je ne retiendrais pas mon souffle.

+0

Puisque la question mentionne un 'registre hack', je ne pense pas que @ Un Salim cherche un moyen de le faire à partir d'une page Web. – pkaeding

+0

Nevermind.Après avoir lu la clarification du demandeur, je suppose que c'était pour une application web. – pkaeding

0

J'utilise cette solution jQuery (testé sur IE6 et 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(); 
     } 
    } 
});  

espère que cela aide quelqu'un

Questions connexes