Confeccionemos una página que muestre las propiedades más importantes del objeto event:hay que recordar que esta página solo funcionará en navegadores que respetan los estándares del W3C, actualmente se acercan al 100%.
<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<script>
window.addEventListener('load',inicializarEventos,false);
function inicializarEventos()
{
var ob=document.getElementById('recuadro');
ob.addEventListener('click',presionMouse,false);
}
function presionMouse(e)
{
var ob=e.target;
while (ob.hasChildNodes())
{
ob.removeChild(ob.lastChild);
}
var nt=document.createTextNode('Tecla alt presionada (e.altKey) ? '+e.altKey);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('Tecla ctrl presionada (e.ctrlKey) ? '+e.ctrlKey);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('Tecla shift presionada (e.shiftKey) ? '+e.shiftKey);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('Nombre del evento (e.type) ? '+ e.type);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('El elemento que causo el evento (e.target) ? '+e.target);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('La coordenada x del mouse respecto a la ventana (e.clientX) ? '+ e.clientX);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('La coordenada y del mouse respecto a la ventana (e.clientY) ? '+ e.clientY);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('La coordenada x del mouse respecto a la pantalla completa (e.screenX) ? '+ e.screenX);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('La coordenada y del mouse respecto a la pantalla completa (e.screenY) ? '+ e.screenY);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('La coordenada x del mouse respecto al comienzo de la página (e.pageX) ? '+ e.pageX);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('La coordenada y del mouse respecto al comienzo de la página (e.pageY) ? '+ e.pageY);
ob.appendChild(nt);
insertarBR(ob);
}
function insertarBR(ob)
{
var elemento=document.createElement('br');
ob.appendChild(elemento);
}
</script>
<Style>
#recuadro {
font-family:Courier;
font-size:12px;
background-color:#ffffcc;
border-width:1px;
border-style:dotted;
border-color:#ffaa00;
padding:20px;
}
</Style>
</head>
<body>
<h1>Navegadores que cumplen el estandar de W3C.</h1>
<pre id="recuadro">
Presione con el mouse el recuadro.
</pre>
</body>
</html>
El código javascript es:
window.addEventListener('load',inicializarEventos,false);
function inicializarEventos()
{
var ob=document.getElementById('recuadro');
ob.addEventListener('click',presionMouse,false);
}
function presionMouse(e)
{
var ob=e.target;
while (ob.hasChildNodes())
{
ob.removeChild(ob.lastChild);
}
var nt=document.createTextNode('Tecla alt presionada (e.altKey) ? '+e.altKey);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('Tecla ctrl presionada (e.ctrlKey) ? '+e.ctrlKey);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('Tecla shift presionada (e.shiftKey) ? '+e.shiftKey);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('Nombre del evento (e.type) ? '+ e.type);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('El elemento que causo el evento (e.target) ? '+e.target);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('La coordenada x del mouse respecto a la ventana (e.clientX) ? '+ e.clientX);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('La coordenada y del mouse respecto a la ventana (e.clientY) ? '+ e.clientY);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('La coordenada x del mouse respecto a la pantalla completa (e.screenX) ? '+ e.screenX);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('La coordenada y del mouse respecto a la pantalla completa (e.screenY) ? '+ e.screenY);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('La coordenada x del mouse respecto al comienzo de la página (e.pageX) ? '+ e.pageX);
ob.appendChild(nt);
insertarBR(ob);
var nt=document.createTextNode('La coordenada y del mouse respecto al comienzo de la página (e.pageY) ? '+ e.pageY);
ob.appendChild(nt);
insertarBR(ob);
}
function insertarBR(ob)
{
var elemento=document.createElement('br');
ob.appendChild(elemento);
}