猿问

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


手机浏览器中的事件支持要比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;
    }
}


咕咕问
浏览 4447回答 1
1回答

柠檬酸钠

var ele = document.createElement("div"); alert(typeof ele["onclick"] == "undefined") 应该是这样,你试试
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答