mientras que addEventListener es un método que lo aceptan todos los navegador, incluido ie9. para versiones antiguas de ie, use asé ie8-, hay que usar attachEvent. l
ee este tutorial
el código que muestras tiene unos cuantos errores, aparte que no le estás sacando ningún rendimiento al uso de attachEvent
Cita: function capturaEvento(elemento,nomevento,funcion) {
if (elemento.attachEvent)
{
var fct=function(){
funcion.call(elemento,window.event);
}
elemento.attachEvent('on'+nomevento,fct);
return true;
}
else
if (elemento.addEventListener)
{
elemento.addEventListener(nomevento,funcion,false) ;
return true;
}
else
return false;
}
function ini() {
var elems = document.getElementsByTagName('a');
for(var i = 0; i < elems.length; i++){
capturaEvento(elems[i], 'click', function() {funcion(this.href);});
}
}
function funcion(color) {
document.body.style.background = color.split('#')[1];
}
window.onload = function() {ini();};
<a href="#red">RED</a>
<a href="#pink">PINK</a>
<a href="#yellow">YELLOW</a>
todo está en la función ini() que se usa para obtener la colección de elementos (a) usando el método getElementsByTagName() y invocar a la función capturaEvento() con la que invocamos ambos métodos (addEventListener y attachEvent)