JavaScript 兼容旧版浏览器的 addEvent 与 removeEvent 实现

作者:窗边听雨时间:2026-10-22 14:40:06浏览:277

本文介绍了一段基于 John Resig 思路的 JavaScript 事件处理封装代码,旨在解决旧版浏览器(如 IE)与现代标准浏览器在事件绑定与解绑上的差异。代码通过检测 addEventListener 和 attachEvent 的存在,实现了统一的 addEvent 和 removeEvent 函数,确保在不同环境下能正确添加和移除事件监听器。

兼容旧版浏览器的 addEvent 与 removeEvent 实现

网上搜来的,看样子不错,记一笔。


// heavily based on the Quirksmode addEvent contest winner, John Resig


// addEvent


function addEvent(obj,type,fn){


if(obj.addEventListener) obj.addEventListener(type,fn,false);


else if(obj.attachEvent){


obj["e"+type+fn]=fn;


obj[type+fn]=function(){obj["e"+type+fn](window.event);}


obj.attachEvent("on"+type,obj[type+fn]);


    }
}

//------------------------------------

}


}


// removeEvent


function removeEvent(obj,type,fn){


if(obj.removeEventListener) obj.removeEventListener(type,fn,false);


else if(obj.detachEvent){


obj.detachEvent("on"+type,obj[type+fn]);


  }
}
作者最新文章