为了账号安全,请及时绑定邮箱和手机立即绑定

js判断浏览器是否支持某个事件?

js判断浏览器是否支持某个事件?

咕咕问 2016-11-15 16:49:14
手机浏览器中的事件支持要比pc的多一些(不是很确定)因此有些时候可能会面临个问题,手机的事件不兼容pc,所以想要通过js判断一下,当前浏览器是否支持某个事件?这个感觉不一定对    抛砖引入,大神快出来?isSupportEventele,eventName{     eventName ele..__proto__; } 下面是根据回复的答案写的 /**  * 判断浏览器是否支持指定事件    浏览器差异性,这个可能写的不全以后再改  * @param ele           js元素对象  * @param eventName     事件名称(例如:onclick  onmousemove)  * @returns {boolean}  */ function isSupportEvent(ele,eventName){     //通过查找原型链上的方法来判断事件是否在其中,进而判断是否支持着个事件名称   问题是原型链是一层一层的找,而这里只写了一层     //return (eventName in ele.__proto__);     /**      * 根据类型判断      *      如果某个元素没有着个事件名称,                                         则typeof 是 undefined      值是  undefined      *      如果某个元素有着个事件的名称,但是这个事件没有被赋值(function(){}),  则typeof 是 Object         值是  null      *      如果某个元素有着个事件的名称,但是这个事件有被赋值(function(){}),    则typeof 是 function         值是  赋予的function方法      */     if(typeof ele[eventName] != "undefined"){         return true;     }else{         return false;     } }
查看完整描述

1 回答

已采纳
?
柠檬酸钠

TA贡献331条经验 获得超534个赞

var ele = document.createElement("div"); alert(typeof ele["onclick"] == "undefined") 应该是这样,你试试
查看完整回答
1 反对 回复 2016-11-16
  • 咕咕问
    咕咕问
    /** * 判断浏览器是否支持指定事件 浏览器差异性,这个可能写的不全以后再改 * @param ele js元素对象 * @param eventName 事件名称(例如:onclick onmousemove) * @returns {boolean} */ function isSupportEvent(ele,eventName){ //通过查找原型链上的方法来判断事件是否在其中,进而判断是否支持着个事件名称 问题是原型链是一层一层的找,而这里只写了一层 //return (eventName in ele.__proto__); /** * 根据类型判断 * 如果某个元素没有着个事件名称, 则typeof 是 值是 undefined * 如果某个元素有着个事件的名称,但是这个事件没有被赋值(function(){}), 则typeof 是 Object 值是 null * 如果某个元素有着个事件的名称,但是这个事件有被赋值(function(){}), 则typeof 是 function 值是 赋予的function方法 */ if(typeof ele[eventName] != "undefined"){ return true; }else{ return false; } } 根据你说的我改了改 谢谢
  • 咕咕问
    咕咕问
    好吧 这个需要找个解压的搞一个才能看 回复似乎把格式去掉了
  • 1 回答
  • 0 关注
  • 4383 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信