Eventos JavaScript Multi-plataforma

Márcio d'Ávila, 18 de fevereiro de 2004. Revisão 1, 11 de junho de 2004.
Categoria: Internet: Cliente: JavaScript

Monitor de Eventos


Eventos
        
        
        
Evento Corrente

Modificadores:         
Evento Anterior 1

Modificadores:         
Evento Anterior 2

Modificadores:         
 

CrossEvent

Para monitorar os eventos, criamos e utilizamos uma classe chamada CrossEvent, com a função de tratar diferenças entre as propriedades de eventos existentes nos navegadores web. CrossEvent provê propriedades "normalizadas", que se apresentam de forma similar nos diversos navegadores, plataformas e versões.

Propriedade Descrição
type Tipo do evento
target Elemento alvo gerador do evento
charCode Código numérico do caractere digitado
keyCode Código numérico da tecla pressionada
button Código numérico do botão de mouse pressionado (2 = direito)
altKey
ctrlKey
shiftKey
metaKey
Valor lógico que indica se Alt, Control, Shift e Meta, respectivamente, foram pressionados
screenX
screenY
Coordenadas X e Y do mouse na tela
originalEvent Evento original gerado pelo navegador

O objeto evento da classe CrossEvent deve ser instanciado a partir do evento original gerado pelo navegador. Para obtê-lo de forma segura e compatível, a propriedade padrão event deve ser passada como parâmetro no momento em que o evento é capturado, em uma propriedade HTML onevento (onde evento é o tipo do evento desejado). Além disso, métodos que tratam um evento devem sempre retornar true ou false e este valor deve ser retornado também na chamada do evento na tag: onevento="return método(event)". Dessa forma, o retorno do método informa se o navegador pode ou não executar também a ação padrão para tratamento do evento, quando houver. Para um exemplo completo, veja o código fonte para o Monitor de Eventos nesta página.

<input ... onevento="return doEvent(event)" />

<script type="text/javascript">
function doEvent(pEvent)
{
	var evt = new CrossEvent(pEvent);
	...
	return true; // ou false, conforme desejado
}
</script>

Uma discussão detalhada sobre o tratamento das propriedades de eventos nos diversos navegadores web pode ser encontrada na página Event properties, do site QuirksMode.


Firefox - A web de volta
Creative Commons License

© 2003-2010, Márcio d'Ávila, mhavila.com.br, direitos reservados. O texto e código-fonte apresentados podem ser referenciados, distribuídos e utilizados, desde que expressamente citada esta fonte e o crédito do(s) autor(es). A informação aqui apresentada, apesar de todo o esforço para garantir sua precisão e correção, é oferecida "como está", sem quaisquer garantias explícitas ou implícitas decorrentes de sua utilização ou suas conseqüências diretas e indiretas.