Segue o código, compatível com IE e Firefox. Qualquer dúvida com os comentarios, entre em contato:
document.onkeyup=handleKeyboardAction;function handleKeyboardAction(e){
var code;
// Obtém o evento. No caso do Firefox, este // evento é passado como argumento, e no caso do IE, // deve ser obtido através do objeto window. if (!e) var e = window.event;
// Detecta o target da tecla var targ; if (e.target) targ = e.target; else if (e.srcElement) targ = e.srcElement;
// Este código previne um erro do navegador Safari: // Se o usuari clica num DIV com texto, os outros browsers // retornam o DIV como sendo o target. Safari retorna o nó contendo // o texto (nodeType 3). Nesse caso, o target que nos interessa é o pai. if (targ.nodeType == 3) // defeat Safari bug targ = targ.parentNode;
// Obtém o nome da TAG HTML do target do evento tag = targ.tagName.toUpperCase();
// Verifica se o evento não esta sendo acionado em nenhum // campo como campo de texto e combobox. // Esta verificação é importante, pois o handler pode bloquear // o funcionamento adqueado desses campos (por exemplo, em vez de escrever // a letra no campo, executa uma função). if (tag == "INPUT") return;
if (tag == "SELECT") return;
// Detecta o codigo da tecla if (e.keyCode) code = e.keyCode; else if (e.which) code = e.which;
var character = String.fromCharCode(code);
// Executa o procedimento associado à uma letra. if(character == "R"){ }
//Seta para cima if(code == 38) { ... return; } //Seta para direita if(code == 39) { ... return; } //Seta para esquerda if(code == 37) { return; }}