国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

調試手記:zepto touch 模塊與移動瀏覽器 media 標簽的不兼容,以及解決方法

Darkgel / 1647人閱讀

摘要:調試結果看了一下錯誤提示,發現手機瀏覽器只允許用戶操作打開,換句話說不管你最終是哪個函數執行了,你的調用棧上溯到最開始一定是一個元素的事件回調。

問題描述

最近在開發一個視頻播放器項目,需要隱藏 video 標簽,使用 canvas 自己做渲染。結果在點按鈕播放視頻的時候發現 zepto touch 模塊不能用了。

調試結果

看了一下錯誤提示,發現手機瀏覽器只允許用戶操作打開 video,換句話說不管你最終是哪個函數執行了 video.play(),你的調用棧上溯到最開始一定是一個 DOM 元素的 UI 事件回調。

但是zepto touch 模塊是這么封裝 tap 事件的:

    tapTimeout = setTimeout(function() {

      // trigger universal "tap" with the option to cancelTouch()
      // (cancelTouch cancels processing of single vs double taps for faster "tap" response)
      var event = $.Event("tap")
      event.cancelTouch = cancelAll
      // [by paper] fix -> "TypeError: "undefined" is not an object (evaluating "touch.el.trigger"), when double tap
      if (touch.el) touch.el.trigger(event)

      // trigger double tap immediately
      if (touch.isDoubleTap) {
        if (touch.el) touch.el.trigger("doubleTap")
        touch = {}
      }

      // trigger single tap after 250ms of inactivity
      else {
        touchTimeout = setTimeout(function(){
          touchTimeout = null
          if (touch.el) touch.el.trigger("singleTap")
          touch = {}
        }, 250)
      }
    }, 0)

使用 setTimeout 異步執行函數,導致調用棧被清空了,系統判斷的時候自然不會認為是用戶操作導致的 video.play()。

修改方案

那么比較粗暴的解決方法就是修改 zepto 代碼,把 tap 事件的激發動作從異步回調中移出來同步執行,具體的說就是這三行:

      var event = $.Event("tap")
      event.cancelTouch = cancelAll
      if (touch.el) touch.el.trigger(event)

因為 tap 事件是沒有什么延時的,所以直接移出來不會有什么影響,如果是延時事件就很尷尬了,暫時還想不出來什么解決方法。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/80522.html

相關文章

  • 第六天 移動端Web開發注意事項

    摘要:隨著移動互聯網的發展,移動已經逐漸成為互聯網的主要入口,隨之而來的是前端在移動開發上面臨的各種機遇與挑戰,本文就一些常見移動端問題對移動開發需要注意的事項進行一下總結,必然不可能涉及方方面面,但會隨著筆者的積累持續更新。 隨著移動互聯網的發展,移動Web已經逐漸成為互聯網的主要入口,隨之而來的是前端在移動Web開發上面臨的各種機遇與挑戰,本文就一些常見移動端問題對移動Web開發需要注意...

    妤鋒シ 評論0 收藏0
  • 第六天 移動端Web開發注意事項

    摘要:隨著移動互聯網的發展,移動已經逐漸成為互聯網的主要入口,隨之而來的是前端在移動開發上面臨的各種機遇與挑戰,本文就一些常見移動端問題對移動開發需要注意的事項進行一下總結,必然不可能涉及方方面面,但會隨著筆者的積累持續更新。 隨著移動互聯網的發展,移動Web已經逐漸成為互聯網的主要入口,隨之而來的是前端在移動Web開發上面臨的各種機遇與挑戰,本文就一些常見移動端問題對移動Web開發需要注意...

    xbynet 評論0 收藏0
  • 移動前端知識總結

    摘要:基礎知識頁面窗口自動調整到設備寬度,并禁止用戶縮放頁面忽略將頁面中的數字識別為電話號碼忽略平臺中對郵箱地址的識別當網站添加到主屏幕快速啟動方式,可隱藏地址欄,僅針對的版本以后,上已看不到效果將網站添加到主屏幕快 meta基礎知識H5頁面窗口自動調整到設備寬度,并禁止用戶縮放頁面 忽略將頁面中的數字識別為電話號碼 忽略Android平臺中對郵箱地址的識別 當網站添加到主屏幕快...

    gotham 評論0 收藏0
  • 移動前端知識總結

    摘要:基礎知識頁面窗口自動調整到設備寬度,并禁止用戶縮放頁面忽略將頁面中的數字識別為電話號碼忽略平臺中對郵箱地址的識別當網站添加到主屏幕快速啟動方式,可隱藏地址欄,僅針對的版本以后,上已看不到效果將網站添加到主屏幕快 meta基礎知識H5頁面窗口自動調整到設備寬度,并禁止用戶縮放頁面 忽略將頁面中的數字識別為電話號碼 忽略Android平臺中對郵箱地址的識別 當網站添加到主屏幕快...

    MartinDai 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<