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;
}