JS事件在IE与FF中的区别详细解析

2019-12-24,,

之道的易搜项目中的搜索分类是通过JS动态生成的,每个生成的元素都要动态的添加属性、事件。其中,添加属性可以采用赋值的方式,这对IE和FF都是适用的。比如:


     var element = document.createElement('select');


     element.id = "myselect";


上面的语句在IE和FF中都会有同样的效果,并且运行正常。但是我们创建的元素,大部分是要给其动态添加事件的,显然,我们不能和添加属性一样,直接在后面打个dot,然后写个事件名,然后后面跟着一串代码,那样是会报错的。所以我们可以采用如下的方法来添加事件:


首先:我们要判断当前的浏览器是什么浏览器,我们仍然延用之前的定义,


   if( element.attachEvent ){


    //为IE以及IE内核的浏览器(1)


   }else if( element.addEventListener){


     //为FF以及NS内核的浏览器(2)


   }


上面的if语句块就是帮我们完成当前浏览器是IE还是FF的判断。


浏览器判断出来,然后我们要做的就是把函数注册到元素里面。下面我们给出我们定义的一个功能函数:


   function showElementId(elmt){


     alert(elmt.id);


   }


函数功能很简单,就是提示出参数里面的元素的ID。


如果是IE浏览器,我们把如下代码插入到上面的注释(1)处:


element.attachEvent( "onclick",function(){showElementId(elmt)});


如果是FF浏览器,我们把如下代码插入到上面的注释(2)处:


var eventName = "onclick".replace(/on(.*)/i,'$1');
element.addEventListener( eventName,function(){showElementId(elmt)},false);


因为在FF中给元素注册事件的时候,不需要事件名称前面的“on”,所以要把on给替换掉。


好啦,如果今后各位同行在开发项目中,遇到要用JS动态给元素添加事件的时候,就可以采用上面的方法。那样就可以避免用户在用FF浏览器时候不能使用你幸苦开发的功能了。

您可能感兴趣的文章:

  • Js event事件在IE、FF兼容性问题
  • JS IE和FF兼容性问题汇总
  • JS的IE和Firefox兼容性集锦
  • js加入收藏夹代码(兼容ie/ff/op)
  • js离开或刷新页面检测(且兼容FF,IE,Chrome)
  • 引用 js在IE与FF之间的区别详细解析
  • js文本框输入点回车触发确定兼容IE、FF等
  • IE网页js语法错误2行字符1、FF中正常的解决方法
  • IE、FF、Chrome浏览器中的JS差异介绍
  • JavaScript在IE和FF下的兼容性问题

《JS事件在IE与FF中的区别详细解析.doc》

下载本文的Word格式文档,以方便收藏与打印。