【发布时间】:2013-01-21 13:38:01
【问题描述】:
过去,当检测设备是否支持 JavaScript 中的触摸事件时,我们可以这样做:
var touch_capable = ('ontouchstart' in document.documentElement);
但是,即使底层设备不支持触摸事件,谷歌浏览器 (17.x.x+) 也会返回 true 进行上述检查。例如,在 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)
这远非理想......
【问题讨论】:
标签: javascript google-chrome dom-events