判断浏览器是否兼容问题

判断浏览器是否兼容问题

为什么通过if(ele.addEventListener)就能判断浏览器是否兼容这个方法呢?

这个里面的逻辑是怎么样的,是常用console.log输出是这样子的。老师能否帮忙解答下

http://img1.sycdn.imooc.com//climg/5e75d5d1090c0b0004740190.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,我们可以打印出来看下:

http://img1.sycdn.imooc.com//climg/5e75f5170963bed006150170.jpg

在谷歌浏览器运行:

http://img1.sycdn.imooc.com//climg/5e75f5220911a3b408130125.jpg

addEventListener是谷歌的,符合条件,返回的条件转为了true,而attachEvent是IE的,所以是undefined隐式转换后就是false。

例:
http://img1.sycdn.imooc.com//climg/5e75f5bd09532e8f04420159.jpg

a是字符串,隐式转换后为true,就是执行if,undefined隐式转换后就是false:
http://img1.sycdn.imooc.com//climg/5e75f5da09fdaf7502050040.jpg

同学再理解下。

祝学习愉快~

好帮手慕粉 2020-03-21 18:09:29

同学你好,因为在Chrome Firefox IE9等浏览器中,添加事件使用的是addEventListener,IE8及IE8以下的浏览器使用attachEvent,简单来说,就是如果在IE7中,元素会先判断能不能使用addEventListener这个方法,不能使用就走else语句:
http://img1.sycdn.imooc.com//climg/5e75e7d60917563308030253.jpg

祝学习愉快~

  • 提问者 艾丶 #1
    老师这个判断我是有看明白了。但是这个if(ele.addEventListener)里面这个判断的逻辑不是很明白,为什么是会返回true或者false
    2020-03-21 18:25:04
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师