手机浏览器中的事件支持要比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; } }
柠檬酸钠
相关分类