J'ai des problèmes avec du JavaScript que j'ai écrit, mais seulement avec Internet Explorer 8. Je n'ai aucun problème à exécuter cela sur Internet Explorer 7 ou plus tôt ou sur Mozilla Firefox 3.5 ou plus tôt. Il s'exécute également correctement lorsque j'utilise le mode de compatibilité sur Internet Explorer 8.
Ce que je fais est de remplacer la touche Entrée lorsqu'un utilisateur entre une valeur dans une zone de texte. Donc, sur mon élément, j'ai ceci: p> , puis j'ai la méthode JavaScript suivante: p> Toute aide que vous pourriez avoir est grandement appréciée. P> Mise à jour: Merci à tous pour vos commentaires rapides. Chris Pebble et Bryan Kyle ont tous deux assisté à cette solution. J'ai récompensé Bryan la "réponse" pour aider à sa réputation. Merci tout le monde! P> p>
8 Réponses :
Essayez d'ajouter un événement enkeyup également et appelez la même fonction. P>
Conseil:
Vous pouvez ajouter débogueur; code> au début de Dosubmit pour définir une pause, vous pouvez examiner le code KeyCode. P>
Intéressant, l'événement "OnKeyUp" n'exécute même pas dans ce cas sur Internet Explorer 8.
Je pense window.event.keycode code> fonctionne dans IE8 (je ne peux pas tester maintenant) P>
On dirait sous l'IE8 The KeyCode Code> Propriété de
window.event code> est
non défini code> mais cette même propriété de
window.event / Code> (Notez le minuscule e fort>) a la valeur. Vous pouvez essayer d'utiliser
window.event code>.
Juste un hunch, essayez ceci:
var keyCode = e.keyCode ? e.keyCode : e.which;
Cela a travaillé sur Internet Explorer 8, mais n'a travaillé sur aucun des autres navigateurs que ce code a utilisé pour travailler.
Chris, s'il vous plaît voir mon commentaire ci-dessous. Vous adéquat avec Bryan a aidé à résoudre ce problème! Merci encore!
ou quelque chose comme ça. Var KeyCode = E.Qui || E.KeyCode; P>
Je préfère personnellement l'approche multi-clés. Cela permet de détecter plusieurs clés, mais aussi d'une seule clé identique, et cela fonctionne dans chaque navigateur que j'ai testé.
map={} keydown=function(e){ e=e||event map[e.keyCode]=true if(map[16]&&map[191]){//SHIFT+? alert('1) Type your username and password\n\n2) Hit Enter to log in') map={} return false }else if(map[13]){//Enter alert('Logging in...') map={} return false } } keyup=function(e){ e=e||event map[e.keyCode]=false } onkeydown=keydown onkeyup=keyup//For Regular browsers try{//for IE document.attachEvent('onkeydown',keydown) document.attachEvent('onkeyup',keyup) }catch(e){ //do nothing }
Cela a fonctionné de cette manière sur mon code:
var kcode = (window.event) ? event.keyCode : event.which;
Essayez ceci:
function checkKeyCode(e){ if (!e) e = window.event; var kCd = e.which || e.keyCode; return kCd; }