手机浏览器中的事件支持要比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")
应该是这样,你试试
添加回答
举报
0/150
提交
取消