过去,当检测到设备是否支持
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)
哪个远远不是理想的?