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


Posted in Javascript onNovember 20, 2013

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

Javascript 相关文章推荐
javascript call和apply方法
Nov 24 Javascript
jquery offset函数应用实例
Nov 14 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
May 28 Javascript
JavaScript function 的 length 属性使用介绍
Sep 15 Javascript
常见的javascript跨域通信方法
Dec 31 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
Aug 11 Javascript
jsTree使用记录实例
Dec 01 Javascript
AngularJS中的Promise详细介绍及实例代码
Dec 13 Javascript
Vue列表渲染的示例代码
Nov 01 Javascript
小程序自定义模板实现吸顶功能
Jan 08 Javascript
基于JavaScript实现随机点名器
Feb 25 Javascript
vue如何使用模拟的json数据查看效果
Mar 31 Vue.js
引用 js在IE与FF之间的区别详细解析
Nov 20 #Javascript
JavaScript之IE的fireEvent方法详细解析
Nov 20 #Javascript
JavaScript中setInterval的用法总结
Nov 20 #Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
Nov 20 #Javascript
jquery iframe操作详细解析
Nov 20 #Javascript
JS获取当前日期和时间的简单实例
Nov 19 #Javascript
js 自动播放的实例代码
Nov 19 #Javascript
You might like
PHP+MySQL 制作简单的留言本
2009/11/02 PHP
php 随机排序广告的实现代码
2011/05/09 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
2014/06/05 PHP
php利用imagemagick实现复古老照片效果实例
2017/02/16 PHP
php利用array_search与array_column实现二维数组查找
2019/07/08 PHP
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
jQuery计算textarea中文字数(剩余个数)的小程序
2013/11/28 Javascript
解析JSON对象与字符串之间的相互转换
2013/12/18 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
基于jQuery实现多层次的手风琴效果附源码
2015/09/21 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
2018/02/01 Javascript
js canvas画布实现高斯模糊效果
2018/11/27 Javascript
JSON基本语法及与JavaScript的异同实例分析
2019/01/04 Javascript
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
2019/04/04 Javascript
微信小程序自定义模态弹窗组件详解
2019/12/24 Javascript
从零使用TypeScript开发项目打包发布到npm
2020/02/14 Javascript
vue element实现表格合并行数据
2020/11/30 Vue.js
vue的hash值原理也是table切换实例代码
2020/12/14 Vue.js
[05:43]VG.R战队教练Mikasa专访:为目标从未停止战斗
2016/08/02 DOTA
让Python更加充分的使用Sqlite3
2017/12/11 Python
Python脚本修改阿里云的访问控制列表的方法
2019/03/08 Python
python实现while循环打印星星的四种形状
2019/11/23 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
Django执行源生mysql语句实现过程解析
2020/11/12 Python
Python控制鼠标键盘代码实例
2020/12/08 Python
拉夫劳伦爱尔兰官方网站:Ralph Lauren爱尔兰
2020/04/10 全球购物
生日寿宴答谢词
2014/01/19 职场文书
运动会广播稿20字
2014/02/18 职场文书
先进典型事迹材料
2014/12/29 职场文书
婚礼新人答谢词
2015/01/04 职场文书
写给同学的新学期寄语
2015/02/27 职场文书
幼师辞职信范文
2015/02/27 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL