Captura de teclas em Javascript – Parte 2

May 15, 2006

Demorei pra escrever a segunda parte desse pequeno tutorial, mas antes tarde do que nunca. No post anterior eu expliquei brevemente o funcionamento da captura de teclas em Javascript. Neste vou colocar uma receitinha de bolo.

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

}

tags: , ,
posted in Desenvolvimento by Miguel Galves

Follow comments via the RSS Feed | Leave a comment | Trackback URL

  • http://www.fusca1967.oi.com.br Alexandre

    Miguel,

    Excelente explicação, sou novo nessa area de javascript mas ja tenho 10 anos em programação. Fiquei apenas com uma duvida, como se trata os atalhos de tecla que são compostos de mais de um evento? Como fazer esse persistente a espera do OnkeyDown? Muito obrigado,

    Alexandre Rocha

  • http://www.fusca1967.oi.com.br Alexandre

    So para ficar mais claro.. imagine um ALT SHIFT D ou A B C ou Seta para direita B… algo assim . Grato, Alexandre

  • Oio

    nem funfa

  • Alonerusso

    Aqui funcionou

blog comments powered by Disqus

Switch to our mobile site

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org