如何在JavaScript中检测设备触摸支持?

前端之家收集整理的这篇文章主要介绍了如何在JavaScript中检测设备触摸支持?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
过去,当检测到设备是否支持 JavaScript中的触摸事件时,我们可以这样做:
var touch_capable = ('ontouchstart' in document.documentElement);

但是,即使底层设备不支持触摸事件,Google Chrome(17.x.x)对于上述检查也将返回true.例如,在Windows 7上运行上述代码返回true,因此如果我们将它与以下类似的东西相结合:

var start_evt = (touch_capable) ? 'ontouchstart' : 'onmousedown';

在Chrome浏览器上,事件从未被触发,因为我们绑定到onuchstart.总之,有没有人知道一个可靠的方式来规避这个?我目前正在运行以下检查:

var touch_capable = ('ontouchstart' in document.documentElement && navigator.userAgent.toLowerCase().indexOf('chrome') == -1)

哪个远远不是理想的?

解决方法

正确的答案是处理这两种事件类型 – 它们不是相互排斥的.

为了更可靠的触摸支持测试,还要查找window.DocumentTouch&& DocumentTouch的文档实例是Modernizr使用的测试之一

更好的是,只需使用Modernizr自己,并为您进行功能检测.

注意,尽管你不能防止误报,因此我的第一行 – 你必须支持两者.

猜你在找的JavaScript相关文章