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

 更新时间:2013年11月20日 09:48:08   作者:  
这篇文章主要是对JS事件在IE与FF中的区别进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助

之道的易搜项目中的搜索分类是通过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浏览器时候不能使用你幸苦开发的功能了。

相关文章

  • BootStrap selectpicker后台动态绑定数据的方法

    BootStrap selectpicker后台动态绑定数据的方法

    这篇文章主要为大家详细介绍了BootStrap selectpicker后台动态绑定数据的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • thinkjs微信中控之微信鉴权登陆的实现代码

    thinkjs微信中控之微信鉴权登陆的实现代码

    这篇文章主要介绍了thinkjs微信中控之微信鉴权登陆的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • JavaScript判断对象是否为数组

    JavaScript判断对象是否为数组

    这篇文章主要介绍了JavaScript判断对象是否为数组的三种方法,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • 微信小程序数据监听器使用实例详解

    微信小程序数据监听器使用实例详解

    这篇文章主要介绍了微信小程序数据监听器使用实例,数据监听器用于监听和响应任何属性和数据字段的变化,从而执行特定的操作。它的作用类似于vue中的watch侦听器
    2023-04-04
  • 原生js实现给指定元素的后面追加内容

    原生js实现给指定元素的后面追加内容

    给指定元素的后面追加一些自己想要实现的效果或者是一些属性之类的,有木有遇到过,接下来为大家详细介绍下追加的实现代码,感兴趣的朋友可以参考下哈
    2013-04-04
  • 整理关于Bootstrap导航的慕课笔记

    整理关于Bootstrap导航的慕课笔记

    这篇文章主要为大家整理了关于Bootstrap导航的慕课笔记,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • layui数据表格跨行自动合并的例子

    layui数据表格跨行自动合并的例子

    今天小编就为大家分享一篇layui数据表格跨行自动合并的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • Javascript解决常见浏览器兼容问题的12种方法

    Javascript解决常见浏览器兼容问题的12种方法

    我们提倡尽可能使用CSS,而且我们常常能做到这一点。现代浏览器有很好的CSS支持-这无疑足够好让你使用CSS来控制布局和版面设计。但是有时候,某些网页元素在不同的浏览器会出现不同。
    2010-01-01
  • 微信小程序日历弹窗选择器代码实例

    微信小程序日历弹窗选择器代码实例

    这篇文章主要介绍了微信小程序日历弹窗选择器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • TypeScript 类型断言的几种实现

    TypeScript 类型断言的几种实现

    本文主要介绍了TypeScript 类型断言的实现,有使用关键字as和标签<>两种方式,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01

最新评论