【问题标题】:How can I detect if the browser supports the gesturestart event?如何检测浏览器是否支持手势启动事件?
【发布时间】:2026-01-19 08:50:01
【问题描述】:

如何检测浏览器是否支持手势启动和其他手势事件?这些事件用于捏合旋转和缩放。

它们似乎只在 iOS 上可用。

如果它们本身不可用,我希望模仿它们。

【问题讨论】:

    标签: javascript html touch


    【解决方案1】:

    试试这个方法,捕获更多设备/浏览器:-

    try {
      document.createEvent("gesturestart");
      alert(true);
    }
    catch (e) {
      alert(false);
    }
    

    【讨论】:

    【解决方案2】:

    您可以在window 中检查ongesturestart

    if ('ongesturestart' in window){
    
      // do something 
    }
    

    【讨论】:

    • window.ongesturestart 在 Safari 上未定义,即使支持手势事件。试试'GestureEvent' in window
    【解决方案3】:

    此处提到的其他方法在 MacOS Safari 上将失败。

    在 MacOS Safari 中,'ongesturestart' in window 返回 false,即使支持像 gesturestart 这样的手势事件。

    您可以通过检查 GestureEvent 来检查手势支持:

    'GestureEvent' in window
    

    【讨论】:

      【解决方案4】:

      我认为您可以简单地检查事件是否存在,如下所示:

      document.documentElement.ontouchstart !== 'undefined'
      

      【讨论】: