2011-08-28 1 views
1

Pour une raison quelconque ce script ne fonctionne pas dans Firefox:touche Echap ne se reconnaît dans Firefox

document.onkeydown=function keypress(e) { 
    if (e.keyCode == 27) { 
     window.location = "/edit" 
    }; 
}; 

Il fonctionne très bien dans Chrome, mais pour une raison quelconque, il ne fonctionne pas dans Firefox.

Fondamentalement, ce qu'il fait est de charger la page /edit lorsque vous appuyez sur la touche d'échappement.

+0

Works pour moi dans FF5: http://jsfiddle.net/Tm2PZ/ – Mrchief

+0

essayant en cours d'exécution 'console.log (e)'. Vérifiez la sortie pour vérifier si quelque chose se produit. – Trevor

Répondre

6

utilisation:

document.onkeydown=function keypress(e) { 
    e=(e||window.event); 
    if (e.keyCode == 27) { 
     try{e.preventDefault();}//Non-IE 
     catch(x){e.returnValue=false;}//IE 
     window.location = "/edit"; 
    }; 
} 

La valeur par défaut action pour ESC est d'arrêter le chargement de la page,
vous devez donc empêcher ce comportement, sinon vous ne pouvez pas changer l'emplacement.

Fiddle: http://jsfiddle.net/doktormolle/CsqgE/ (Cliquez dans le résultat cadre avant d'utiliser ESC)

Mais cependant, vous devriez vraiment utiliser une autre clé.
Un utilisateur attend que le chargement de la page en cours arrête s'il utilise ESC, rien d'autre.

+0

Ah. Je ne connaissais pas ce raccourci clavier. J'ai choisi Escape parce que je sais que SquareSpace l'utilise, je vais devoir essayer de trouver une autre clé. – JacobTheDev

0

Le gestionnaire d'événements travaille pour moi: http://jsfiddle.net/Tm2PZ/

Je soupçonne que la lcoation vous configurez est pas valide.

Essayez le réglage window.location.href à la place.

+0

@Mrchief: vous avez tort. –

+0

@ Dr.Molle: D'accord avec vous. Supprimé mes commentaires – Mrchief

+0

@Dmitriy: Quel est le problème ici? – Mrchief

Questions connexes