JavaScript 兼容 IE6-8 与标准浏览器的事件绑定函数实现

作者:竹影时间:2026-10-24 21:10:54浏览:599

本文介绍一个兼容 IE6 至 IE8 及 Firefox、Chrome 等现代浏览器的 JavaScript 事件绑定函数。该函数通过判断浏览器特性,分别使用 attachEvent 和 addEventListener 注册事件,重点解决了 IE 中 this 指向错误及事件冒泡阻止的问题,并提供完整可复用代码。

主要解决了

跨浏览器事件绑定方案概述

实现浏览器兼容,涵盖IE6、IE7、IE8、Firefox及Chrome。


处理IE浏览器中this指向问题。


直接提供代码实现。


代码如下:

 
核心绑定函数实现var bind=function(object,type,fn){
if(object.attachEvent){//IE浏览器
object.attachEvent("on"+type,(function(){
return function(event){
window.event.cancelBubble=true;//停止事件冒泡
object.attachEvent=[fn.apply(object)];//重点说明此处
} 
})(object),false);
}else if(object.addEventListener){//其他浏览器
object.addEventListener(type,function(event){
event.stopPropagation();//停止事件冒泡
fn.apply(this)
}); 
} 
} 
使用示例与说明//以下为ID为AAA的元素添加click事件
bind(document.getElementById("aaa"),"click",function(){alert("这是你点击的按钮的ID"+this.id+"这是绑定的第1个函数")});
bind(document.getElementById("aaa"),"click",function(){alert("这是你点击的按钮的ID"+this.id+"这是绑定的第2个函数")});

代码简洁,无需过多解释,实际使用即可验证。

作者最新文章