<abbr id="ciwa6"><option id="ciwa6"></option></abbr>
  • <sup id="ciwa6"><kbd id="ciwa6"></kbd></sup>
    <small id="ciwa6"></small>
  • 千鋒教育-做有情懷、有良心、有品質的職業教育機構

    400-811-9990
    手機站
    千鋒教育

    千鋒學習站 | 隨時隨地免費學

    千鋒教育

    掃一掃進入千鋒手機站

    領取全套視頻
    千鋒教育

    關注千鋒學習站小程序
    隨時隨地免費學習課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶

    常見的兼容問題有哪些 ?

    匿名提問者 2023-04-12 15:18:51

    常見的兼容問題有哪些 ?

    我要提問

    推薦答案

      常見的兼容問題有哪些 ?

    兼容問題有哪些

      獲取標簽節點:

      document.getElementsByClassName('類名')在低版本ie中不兼容。解決方法是使用其他方式獲取:

      document.getElementById('id名')

      document.getElementsByTagName('標簽名')

      document.getElementsByName('name屬性值')

      document.querySelector('css選擇器')

      document.querySelectorAll('css選擇器')

      復制代碼

      

      * 獲取卷去的高度

      復制代碼

      // 當有文檔聲明的時候

      document.documentElement.scrollTop

      document.documentElement.srollLeft

      // 沒有文檔聲明的時候

      document.body.scrollTop

      document.body.scrollLeft

      復制代碼

      * 解決辦法使用兼容寫法:

      復制代碼

      // 獲取

      var t = document.documentElement.scrollTop || document.body.scrollTop

      var l = document.documentElement.srollLeft || document.body.scrollLeft

      // 設置

      document.documentElement.scrollTop = document.body.scrollTop = 數值

      document.documentElement.srollLeft = document.body.scrollLeft = 數值

      復制代碼

      

      獲取樣式

      // W3C標準瀏覽器

      window.getComputedStyle(元素)

      // 低版本IE中

      元素.currentStyle

      復制代碼

      使用函數封裝的方式兼容:

      function getStyle(ele,attr){

      if(window.getComputedStyle){

      return getComputedStyle(ele)[attr]

      }else{

      return ele.currentStyle[attr]

      }

      }

      復制代碼

      

      事件偵聽器

      // W3C瀏覽器

      ele.addEventListener(事件類型,函數)

      // 低版本Ie

      ele.attachEvent('on事件類型',函數)

      復制代碼

      使用函數封裝的方式解決:

      function bindEvent(ele,type,handler){

      if(ele.addEventListener){

      ele.addEventListener(type,handler)

      }else if(ele.attachEvent){

      ele.attachEvent('on'+type,handler)

      }else{

      ele['on'+type] = handler

      }

      }

      復制代碼

      

      事件解綁

      // W3C瀏覽器

      ele.removeEventListener(事件類型,函數)

      // 低版本Ie

      ele.detachEvent('on事件類型',函數)

      復制代碼

      使用函數封裝的方式解決:

      function unBind(ele,type,handler){

      if(ele.removeEventListener){

      ele.removeEventListener(type,handler)

      }else if(ele.detachEvent){

      ele.detachEvent('on'+type,handler)

      }else{

      ele['on'+type] = null

      }

      }

      復制代碼

      

      事件對象的獲取

      // W3C瀏覽器

      元素.on事件類型 = function(e){}

      元素.addEventListener(事件類型,fn)

      function fn(e){

      }

      // 在低版本IE中

      元素.on事件類型 = function(){ window.event }

      元素.addEventListener(事件類型,fn)

      function fn(){

      window.event

      }

      復制代碼

      使用短路運算符解決:

      元素.on事件類型 = function(e){

      var e = e || window.event

      }

      元素.addEventListener(事件類型,fn)

      function fn(e){

      var e = e || window.event

      }

      復制代碼

      

      阻止默認行為

      // W3C瀏覽器

      元素.on事件類型 = function(e){

      e.preventDefault()

      }

      // 在低版本IE中

      元素.on事件類型 = function(){ window.event.returnValue = false }

      復制代碼

      通過封裝函數解決;

      元素.on事件類型 = function(e){

      var e = e || window.event

      e.preventDefault?e.preventDefault():e.returnValue=false

      }

      復制代碼

      

      阻止事件冒泡

      // W3C瀏覽器

      元素.on事件類型 = function(e){

      e.stopPropagation()

      }

      // 在低版本IE中

      元素.on事件類型 = function(){ window.event.cancelBubble = true }

      復制代碼

      通過函數封裝解決:

      元素.on事件類型 = function(e){

      var e = e || window.event

      e.stopPropagation?e.stopPropagation():e.cancelBubble=true

      }

      復制代碼

      

      獲取精準的目標元素

      // W3C瀏覽器

      元素.on事件類型 = function(e){

      e.target

      }

      // 在低版本IE中

      元素.on事件類型 = function(){ window.event.srcElement }

      復制代碼

      通過短路運算符解決:

      元素.on事件類型 = function(e){

      var e = e || window.event

      var target = e.target || e.srcElement;

      }

      復制代碼

      

      獲取鍵盤碼

      // W3C瀏覽器

      元素.on事件類型 = function(e){

      e.keyCode

      }

      // 在低版本火狐中

      元素.on事件類型 = function(e){

      e.which

      }

      復制代碼

      通過短路運算符解決:

      元素.on事件類型 = function(e){

      var e = e || window.event

      var keycode = e.keyCode || e.which;

      }

    猜你喜歡LIKE

    webpack怎么打包

    2023-04-12

    Css3有哪些新特性

    2023-04-12

    Vue開發相對于原生的js開發有什么優點

    2023-04-12

    最新文章NEW

    Vue3.0和Vue2.0的區別

    2023-04-12

    什么是權限管理?權限管理有哪些分類

    2023-04-12

    在成都參加java程序員培訓班要多少錢?

    2023-04-12