buenas,
el caso de firefox es un tanto raro y no lo habia notado hasta ahora la version 4. creo que antes no sucedia lo que explico a continuacion. de los tres tipos eventos de teclado, keypress es un tanto distinto. en particular, ciertas teclas no se detectan en dicho evento. por ejemplo, la mayoria de las teclas de controles: CTRL, ALT, SHIFT, END, HOME, PG UP, PG DW, etc. por eso puede ser que sea parte de tu problema; pero no solo llega hasta ahi. el caso de firefox hace algo muy raro. en keypress firefox detecta algunas de teclas de controles pero no las registra en la propiedad which, sino en keyCode. esa puede ser la otra razon por la que no te funciona.