wanwanwandj 2019-12-28
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>跨浏览器事件处理程序</title> <!-- 针对IE8及以下版本 --> </head> <body> <script> //添加事件 function addHandler(element,type,handler){ //element:事件对象 //type:事件类型 //handler:事件句柄 if (element.addEventListener){ //判断浏览器是否支持该语句(chrome/opera/IE9支持) element.addEventListener(type,handler,false); }else if(element.attachEvent){ //判断浏览器是否支持该语句(IE8及以下版本支持) element.attachEvent("on"+type,handler); }else{ element["on"+type]=handler;//以上两种都不支持时,执行DOM0级事件 } } //移除事件 function removeHandler(element,type,handler){ if (element.removeEventListener){ //判断浏览器是否支持该语句(chrome/opera/IE9支持) element.removeEventListener(type,handler,false); }else if(element.detachEvent){ //判断浏览器是否支持该语句(IE8及以下版本支持) element.detachEvent("on"+type,handler); }else{ element["on"+type]=handler;//以上两种都不支持时,执行DOM0级事件 } } </script> <!-- 测试效果 --> <button id="btn">点击</button><!-- 创建按钮 --> <script> var btn=document.getElementById("btn");//获取按钮 //事件句柄 var tan=function (){ alert("弹框"); } addHandler(btn,"click",tan);//调用添加事件函数 removeHandler(btn,"click",tan);//调用移除事件函数 </script> </body> </html>