最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

常用原生JS兼容性寫法匯總

 更新時間:2016年04月27日 08:37:48   作者:小蚊  
這篇文章主要為大家詳細匯總了常用原生JS兼容性寫法,感興趣的小伙伴們可以參考一下

就來總結(jié)一下簡單的東西

備注:一下的方法都是包裹在一個EventUtil對象里面的,直接采用對象字面量定義方法了。。。

①添加事件方法

addHandler:function(element,type,handler){
 if(element.addEventListener){//檢測是否為DOM2級方法
  element.addEventListener(type, handler, false);
 }else if (element.attachEvent){//檢測是否為IE級方法
  element.attachEvent("on" + type, handler);
 } else {//檢測是否為DOM0級方法
  element["on" + type] = handler;
 }
}

②移除之前添加的事件方法

removeHandler:function(element, type, handler){
  if (element.removeEventListener){
   element.removeEventListener(type, handler, false);
  } else if (element.detachEvent){
   element.detachEvent("on" + type, handler);
  } else {
   element["on" + type] = null;
  }
 }

③獲取事件及事件對象目標

//獲取事件對象的兼容性寫法
 getEvent: function(event){
  return event ? event : window.event;
 },
 //獲取事件對象目標的兼容性寫法
 getTarget: function(event){
  return event.target || event.srcElement;
 }

④阻止瀏覽器默認事件的兼容性寫法

preventDefault: function(event){
  if (event.preventDefault){
   event.preventDefault();
  } else {
   event.returnValue = false;
  }
 }

⑤阻止事件冒泡的兼容性寫法

stopPropagation: function(event){
  if (event.stopPropagation){
   event.stopPropagation();
  } else {
   event.cancelBubble = true;
  }
 }

⑥mouseover和mouseout 事件才包含的獲取相關(guān)元素的方法

//mouseover和mouseout 事件才包含的獲取相關(guān)元素的方法
getRelatedTarget: function(event){
 if (event.relatedTarget){
  return event.relatedTarget;
 } else if (event.toElement){
  return event.toElement;
 } else if (event.fromElement){
  return event.fromElement;
 } else {
  return null;
 }
}

⑦鼠標滾輪判斷

對于mousedown 和mouseup 事件來說,則在其event 對象存在一個button 屬性,
表示按下或釋放的按鈕。DOM的button 屬性可能有如下3 個值:0 表示主鼠標按鈕,1 表示中間的鼠
標按鈕(鼠標滾輪按鈕),2 表示次鼠標按鈕。在常規(guī)的設(shè)置中,主鼠標按鈕就是鼠標左鍵,而次鼠標
按鈕就是鼠標右鍵。
IE8 及之前版本也提供了button 屬性,但這個屬性的值與DOM 的button 屬性有很大差異。
 0:表示沒有按下按鈕。
 1:表示按下了主鼠標按鈕。
 2:表示按下了次鼠標按鈕。
 3:表示同時按下了主、次鼠標按鈕。
 4:表示按下了中間的鼠標按鈕。
 5:表示同時按下了主鼠標按鈕和中間的鼠標按鈕。
 6:表示同時按下了次鼠標按鈕和中間的鼠標按鈕。
 7:表示同時按下了三個鼠標按鈕。

getButton: function(event){
 if (document.implementation.hasFeature("MouseEvents", "2.0")){
  return event.button;
 } else {
  switch(event.button){
   case 0:
   case 1:
   case 3:
   case 5:
   case 7:
   return 0;
   case 2:
   case 6:
   return 2;
   case 4:
   return 1;
  }
 }
}

⑧能夠取得鼠標滾輪增量值(delta)的方法

getWheelDelta: function(event){
 if (event.wheelDelta){
  return (client.engine.opera && client.engine.opera < 9.5 ?
   -event.wheelDelta : event.wheelDelta);
 } else {
  return -event.detail * 40;//firefox中的值為+3表示向上滾,-3表示向下滾
 }
}

⑨跨瀏覽器的方式取得字符編碼

getCharCode: function(event){
 if (typeof event.charCode == "number"){
  return event.charCode;
 } else {
  return event.keyCode;
 }
}

⑩訪問剪貼板中的數(shù)據(jù)

getClipboardText: function(event){
  var clipboardData = (event.clipboardData || window.clipboardData);
  return clipboardData.getData("text");
 }

11.設(shè)置剪貼板中的數(shù)據(jù)

setClipboardText: function(event, value){
  if (event.clipboardData){
   return event.clipboardData.setData("text/plain", value);
  } else if (window.clipboardData){
   return window.clipboardData.setData("text", value);
  }
 }

封裝一下,然后就可以直接用了。

完整文件及更多CSS、LESS基礎(chǔ)重置樣式見:https://github.com/LuckyWinty/resetFile

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助。

相關(guān)文章

  • JS實現(xiàn)的A*尋路算法詳解

    JS實現(xiàn)的A*尋路算法詳解

    這篇文章主要介紹了JS實現(xiàn)的A*尋路算法,結(jié)合實例形式詳細分析了A*尋路算法的概念、原理、實現(xiàn)技巧與相關(guān)注意事項,需要的朋友可以參考下
    2018-12-12
  • ES6中Promise的使用方法實例總結(jié)

    ES6中Promise的使用方法實例總結(jié)

    這篇文章主要介紹了ES6中Promise的使用方法,結(jié)合實例形式總結(jié)分析了Promise對象中的各種常用方法及基本使用技巧,需要的朋友可以參考下
    2020-02-02
  • 用js生產(chǎn)批量批處理執(zhí)行命令

    用js生產(chǎn)批量批處理執(zhí)行命令

    因為從別的地方弄到了100個廣告代碼,但因為他的里面加入了很多東西,所以需要批量刪除一個文件夾和加入我的網(wǎng)站的快捷方式
    2008-07-07
  • javascript異步編程代碼書寫規(guī)范Promise學習筆記

    javascript異步編程代碼書寫規(guī)范Promise學習筆記

    這篇文章主要介紹了javascript異步編程代碼書寫規(guī)范Promise學習筆記,需要的朋友可以參考下
    2015-02-02
  • 詳解uniapp分包的實現(xiàn)方式及優(yōu)點

    詳解uniapp分包的實現(xiàn)方式及優(yōu)點

    當今移動應(yīng)用開發(fā)領(lǐng)域,隨著用戶對于應(yīng)用功能和體驗的要求不斷提高,應(yīng)用程序的復雜度也在不斷增加,在這種情況下,應(yīng)用程序的體積也隨之增大,為了解決這個問題,Uniapp提供了分包功能,本文將詳細介紹Uniapp分包的功能和優(yōu)勢,包括如何通過配置文件實現(xiàn)分包
    2023-09-09
  • JavaScript arguments.callee作用及替換方案詳解

    JavaScript arguments.callee作用及替換方案詳解

    這篇文章主要介紹了JavaScript arguments.callee作用及替換方案詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • JS檢索下拉列表框中被選項目的索引號(selectedIndex)

    JS檢索下拉列表框中被選項目的索引號(selectedIndex)

    這篇文章主要介紹了JS檢索下拉列表框中被選項目的索引號(selectedIndex),本文通過實例代碼圖文詳解的形式給大家介紹的非常詳細,需要的朋友可以參考下
    2019-12-12
  • JS組件Bootstrap實現(xiàn)彈出框效果代碼

    JS組件Bootstrap實現(xiàn)彈出框效果代碼

    這篇文章主要介紹了JS組件Bootstrap實現(xiàn)彈出框效果代碼的相關(guān)資料,對彈出框感興趣的小伙伴們可以參考一下
    2016-04-04
  • 微信小程序?qū)崿F(xiàn)聊天室

    微信小程序?qū)崿F(xiàn)聊天室

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)聊天室,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • JavaScript學習小結(jié)(一)——JavaScript入門基礎(chǔ)

    JavaScript學習小結(jié)(一)——JavaScript入門基礎(chǔ)

    本教程比較適合javascript初學者,對javascript基本知識的小結(jié)包括變量,基本類型等知識點,需要的朋友一起來學習吧
    2015-09-09

最新評論

清涧县| 永济市| 体育| 工布江达县| 紫金县| 西盟| 安达市| 萝北县| 东山县| 博罗县| 乳源| 土默特右旗| 临澧县| 霍林郭勒市| 巴林左旗| 砀山县| 措美县| 琼海市| 柯坪县| 饶河县| 沂南县| 凯里市| 常德市| 灌南县| 库尔勒市| 秦安县| 鄂托克旗| 新和县| 通江县| 寻乌县| 探索| 稷山县| 潮安县| 海门市| 易门县| 惠来县| 喀喇沁旗| 渭南市| 繁昌县| 贵州省| 长春市|