JS事件在IE与FF中的区别详细解析
时间:2023-09-24 23:02:35
之道的易搜项目中的搜索分类是通过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浏览器时候不能使用你幸苦开发的功能了。
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python中的self用法详解
![](https://img.aspxhome.com/file/2023/2/112162_0s.png)
Python sklearn 中的 make_blobs() 函数示例详解
Win7的IIS7中ASP获得的系统日期格式为斜杠的解决办法
Golang利用自定义模板发送邮件的方法详解
![](https://img.aspxhome.com/file/2023/8/72728_0s.png)
使用Python实现 学生学籍管理系统
![](https://img.aspxhome.com/file/2023/6/90556_0s.png)
asp简单的仿图片验证码
在python下实现word2vec词向量训练与加载实例
在线一元二次方程计算器实例(方程计算器在线计算)
mysql实现合并同一ID对应多条数据的方法
json显示日期带T问题的解决方法
Python中模块(Module)和包(Package)的区别详解
Python代码执行时间测量模块timeit用法解析
![](https://img.aspxhome.com/file/2023/7/117567_0s.png)
Python采集电影评论实战示例
![](https://img.aspxhome.com/file/2023/6/124976_0s.png)
Java中正则表达式split()特殊符号使用详解
php+mysqli使用面向对象方式更新数据库实例
python在控制台输出进度条的方法
python实现邮件发送功能
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
![](https://img.aspxhome.com/file/2023/7/135057_0s.jpg)
Windows下mysql community server 8.0.16安装配置方法图文教程
![](https://img.aspxhome.com/file/2023/9/94729_0s.jpg)
利用python数据分析处理进行炒股实战行情
![](https://img.aspxhome.com/file/2023/9/68909_0s.jpg)