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 相关文章推荐
不使用中间变量,交换int型的 a, b两个变量的值。
Oct 29 Javascript
Jquery easyui 下loaing效果示例代码
Aug 12 Javascript
jquery分割字符串的方法
Jun 24 Javascript
Three.js快速入门教程
Sep 09 Javascript
Bootstrap基本样式学习笔记之表格(2)
Dec 07 Javascript
Javascript循环删除数组中元素的几种方法示例
May 18 Javascript
vue组件watch属性实例讲解
Nov 07 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
Jul 06 Javascript
vue+elementUi图片上传组件使用详解
Aug 20 Javascript
Angular封装表单控件及思想总结
Dec 11 Javascript
jQuery实现简易QQ聊天框
Feb 10 jQuery
vue项目在webpack2实现移动端字体自适配功能
Jun 02 Javascript
引用 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
2020年4月放送!《Princess Connect Re:Dive》制作组 & 角色声优公开!
2020/03/06 日漫
vBulletin HACK----关于排版的两个HACK
2006/10/09 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
PHP安全之register_globals的on和off的区别
2020/07/23 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
javascript笔试题目附答案@20081025_jb51.net
2008/10/26 Javascript
jQuery弹出(alert)select选择的值
2013/04/21 Javascript
js对象内部访问this修饰的成员函数示例
2014/04/27 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
getElementById().innerHTML与getElementById().value的区别
2016/10/27 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
jquery实现弹窗功能(窗口居中显示)
2017/02/27 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
python实现socket客户端和服务端简单示例
2014/02/24 Python
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
python3实现斐波那契数列(4种方法)
2019/07/15 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
css3 2D图片转动样式可以扩充到Js当中
2014/04/29 HTML / CSS
迪拜航空官方网站:flydubai
2017/04/20 全球购物
印尼最大的婴儿用品购物网站:Orami
2017/09/28 全球购物
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
个人党性剖析材料
2014/02/03 职场文书
《望洞庭》教学反思
2014/02/16 职场文书
愚人节活动策划方案
2014/03/11 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
2015年团支部工作总结
2015/04/03 职场文书
社区安全温馨提示语
2015/07/14 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android
Python的三个重要函数详解
2022/01/18 Python