关于 Chrome 模拟设备分辨率和触摸事件的能力:https://developer.chrome.com/devtools/docs/device-mode
实际问题:
'ontouchstart' in document.documentElement
在设备仿真模式下返回 false
(当它实际上能够执行触摸事件时)。因此,我需要设备模式仿真的异常(exception)。
最佳答案
您需要在窗口中检查ontouchstart
。不是 document.documentElement。
触摸事件将被检测到:
'TouchEvent' in window && 'ontouchstart' in window
我应该指出,我没有包括 Modernizr 使用的 window.DocumentTouch
方法。它仅适用于 Firefox < 25,Mozilla 在 Windows 上放弃了 Touch Metro UI。所以我再也看不到任何合理或相关的浏览器使用来真正证明它是合理的。虽然 TouchEvent in window
不是必需的,但我认为检查 API 的存在更符合 future 的需要并且在技术上是正确的。
有关触摸事件检测的更多详细信息,请参阅最新的 Modernizr Touch Event Feature Detect在评论中包含链接和引用。
关于javascript - 如何检测设备模式仿真?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28544445/