具有跨浏览器兼容的事件处理javascript脚本

让js脚本具有跨浏览器兼容的事件处理,是一个程序员应该注意的基本问题,让自己编写的js脚本更具有移植性。

到目前为此,许多js程序员编写的代码里的事件处理过程都是老版本的,DOM之前的事件处理模型,许多主流的浏览器

仍然能提供对老版本模型的支持,但是Javascript开发人员应该多采用新的,基于规范的事件处理模型,也就是被称做

Dom Level 2的事件模型。老事件模型和新的Dom Level 2事件模型之间,最主要的区别在于:

1.新事件模型并不依赖于特定的事件来处理属性。
2.你可以对任何一个对象的任何一种事件注册多个事件句柄函数。

用来替代事件句柄属性的每个对象提供的3个方法:addEventListener、removeEventListener和dispatchEvent。第一个方法用来添加

一个事件监听器,第二个方法用来删除一个事件监听器,第三个用来分发一个新事件。

addEventListener的语法是:

下载: yovae.js
  1. addEventListener('event',eventFuntion,boolean);//第一个参数是事件如click或load,第二个参数是自定义事件处理方法,第三个参数如果 //为false则事件监听器将以冒泡方式处理,如为true则用事件捕获方法处理。

因为各个浏览器在事件处理机制有所不同,特别是微软的IE浏览器只支持自己的事件处理机制,我写了一个可以重用的跨浏览器兼容事件处理方法,代码如下:

下载: yovae.js
  1. <scripttype="text/javascript">
  2. //<![CDATA[
  3. functioncatchEvent(eventObj,eventBody,eventHandler){//添加事件监听方法
  4. if(eventObj.addEventListener){
  5. eventObj.addEventListener(eventBody,eventHanndler,false);
  6. }
  7. elseif(eventObj.attachEvent){
  8. eventBody="on"+eventBody;
  9. eventObj.attachEvent(eventBody,eventHanlder);
  10. }
  11. }
  12. functioncanncelEvent(eventBody){//取消一个事件方法
  13. if(eventBody.preventDefault){
  14. eventBody.preventDefault();
  15. eventBody.stopPropagation();
  16. }
  17. else{
  18. eventBody.returnValue=false;
  19. eventBody.cancelBubble=true;
  20. }
  21. }
  22. //]]>
  23. </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值