Derke,
Gracias por responder. Si, comprendo lo que decis. De hecho tengo una función propia para agregar eventos de forma independiente al browser. El tema es que AddEventListener es para DOM Events. IE y su attachEvent no funcionan de la misma forma, no respetan el modelo de eventos DOM por ende funcionan de otra forma.
Más aún, si lo que quiere uno es agregar un evento al doc load no se puede lograr con attachEvent, hay que usar el maldito window.onload :S
Estas son mis funciones, por si a alguien le sirven:
Código:
/*
DECLARACION DE FUNCIONES UTILIZADAS PARA APLICAR EVENTOS A ELEMENTOS
01/08/2007 - Eduardo Garcia Rajo (h)
*/
loads = new Array();
// REFERENCIA general hacia el BODY de la página
var bodyref = $('bodyref');
// Event Object del Browser
var e = e || window.event;
//
// Función para aplicar un evento
//
function addListener(Obj, event, eventHandler) {
if( Obj.addEventListener ) {
Obj.addEventListener(event, eventHandler, false);
} else if( Obj.attachEvent ) {
Obj.attachEvent("on"+event, eventHandler);
}
}
//
// Función para eliminar un evento
//
function removeListener(Obj, event, eventHandler) {
if( Obj.removeEventListener ) {
Obj.removeEventListener(event, eventHandler, false);
} else if( Obj.detachEvent ) {
Obj.detachEvent("on"+event, eventHandler);
}
}
//
// Función para agregar un evento al LOAD de la página
//
function DocLoad(eventHandler) {
if (document.addEventListener) {
addListener(document, "DOMContentLoaded", eventHandler);
} else if (window.addEventListener) {
addListener(window, "DOMContentLoaded", eventHandler);
} else {
window.onload = eventHandler;
}
}
/*******************************************************************/
//
// Ejecuta todas las funciones de Document Load
//
function cargarFunciones() {
for (var i =0; i < loads.length;i++) {
eval(loads[i]);
}
}
//
// Disparamos el Document Load
//
DocLoad(cargarFunciones);
¿A alguien le funciono attachEvent utilizando "onload" o algo asi? yo tuve que hacer una función especial para meter eventos al document load.
Un saludo atento y gracias por responder :)