Mostrando entradas con la etiqueta eventos. Mostrar todas las entradas
Mostrando entradas con la etiqueta eventos. Mostrar todas las entradas

martes, 15 de septiembre de 2009

Funciones de evento para componentes

Para crear funciones que lancen eventos tal y como ocurre con la función click de IE para todos los navegadores basta con hacer lo siguiente (ejemplo con mouseover sobre un anchor con id 'anchor'):
if(typeof HTMLElement!='undefined'&&!HTMLElement.prototype.mouseover){
document.getElementById('anchor').mouseover=function(){
var evt = this.ownerDocument.createEvent('MouseEvents');
evt.initMouseEvent('mouseover', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
this.dispatchEvent(evt);
}
}
else{
document.getElementById('anchor').mouseover = function(){
this.fireEvent('onmouseover');
}
}

Si se quiere alterar el prototype para navegadores non-IE, basta con hacer HTMLElement.prototype.mouseover=function(){. Esto lanzaría eventos de moudeover sobre cualquier elemento invocando la función mouseover() sobre él.
Nota: En caso del iexplorer, los valores de posición son correctos, pero no así en el resto, que serán cero.