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.
No hay comentarios:
Publicar un comentario