过去,当在 JavaScript 中检测设备是否支持触摸事件时,我们可以这样做:
var touch_capable = ('ontouchstart' in document.documentElement);
true
但是,即使底层设备不支持触摸事件,Google Chrome (17.x.x+) 也会返回上述检查。例如,在 Windows 7 上运行上述代码会返回 true,因此如果我们将其与以下内容结合使用:
var start_evt = (touch_capable) ? 'ontouchstart' : 'onmousedown';
在 Google Chrome 上,自从我们绑定到ontouchstart
. 简而言之,有没有人知道一种可靠的方法来规避这个问题?我目前正在运行以下检查:
var touch_capable = ('ontouchstart' in document.documentElement && navigator.userAgent.toLowerCase().indexOf('chrome') == -1)
这远非理想...