La tecla Esc no se reconoce en Firefox

Por alguna razón, este script no funciona en Firefox:

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

Funciona bien en Chrome, pero por alguna razón no funciona en Firefox.

Básicamente, lo que hace es cargar el /edit página cuando presiona la tecla Escape.

preguntado el 28 de agosto de 11 a las 01:08

Funciona para mí en FF5: jsfiddle.net/Tm2PZ -

tratando de correr console.log(e). Verifique la salida para verificar si está ocurriendo algo. -

2 Respuestas

utilizar:

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 acción predeterminada para ESC es dejar de cargar la página,
por lo que debe evitar este comportamiento; de lo contrario, no podrá cambiar la ubicación.

Violín: http://jsfiddle.net/doktormolle/CsqgE/ (Haga clic en el marco de resultados primero antes de usar ESC)

Pero, sin embargo, debería utilizar otra clave.
Un usuario espera que la carga de la página actual se detenga si usa ESC , nada más.

Respondido 28 ago 11, 07:08

¡Ah! No conocía ese atajo de teclado. Elegí Escape porque sé que SquareSpace usa eso, tendré que intentar encontrar otra clave. - JacobTheDev

El controlador de eventos funciona para mí: http://jsfiddle.net/Tm2PZ/

Sospecho que la codificación que está estableciendo no es válida.

Intenta configurar window.location.href en vez.

Respondido 28 ago 11, 06:08

@ Dr. Molle: Estoy de acuerdo contigo. Eliminó mis comentarios. - Mrchief

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.