手機瀏覽器中的事件支持要比pc的多一些(不是很確定)因此有些時候可能會面臨個問題,手機的事件不兼容pc,所以想要通過js判斷一下,當前瀏覽器是否支持某個事件?這個感覺不一定對 ? ?拋磚引入,大神快出來?isSupportEventele,eventName{
????eventName?ele..__proto__;
}
下面是根據(jù)回復(fù)的答案寫的
/**
?*?判斷瀏覽器是否支持指定事件????瀏覽器差異性,這個可能寫的不全以后再改
?*?@param?ele???????????js元素對象
?*?@param?eventName?????事件名稱(例如:onclick??onmousemove)
?*?@returns?{boolean}
?*/
function?isSupportEvent(ele,eventName){
????//通過查找原型鏈上的方法來判斷事件是否在其中,進而判斷是否支持著個事件名稱???問題是原型鏈是一層一層的找,而這里只寫了一層
????//return?(eventName?in?ele.__proto__);
????/**
?????*?根據(jù)類型判斷
?????*??????如果某個元素沒有著個事件名稱,?????????????????????????????????????????則typeof?是?undefined??????值是??undefined
?????*??????如果某個元素有著個事件的名稱,但是這個事件沒有被賦值(function(){}),??則typeof?是?Object?????????值是??null
?????*??????如果某個元素有著個事件的名稱,但是這個事件有被賦值(function(){}),????則typeof?是?function?????????值是??賦予的function方法
?????*/
????if(typeof?ele[eventName]?!=?"undefined"){
????????return?true;
????}else{
????????return?false;
????}
}
js判斷瀏覽器是否支持某個事件?
咕咕問
2016-11-15 16:49:14