根据使用JavaScript检测“触摸屏”设备的最佳方法是什么?,我实现了一个触摸设备检测。
((!!('ontouchstart' in window) ? 1 : 0) == 1)
这个语句可以很好地返回true或false,即使在最新的Chrome浏览器(v17)中也是如此。为了让我的代码更加美观,我将这个语句放进了一个小函数中。
function isTouchDevice() {
return ((!!('ontouchstart' in window) ? 1 : 0) == 1);
};
不幸的是,在Chrome 17上,这个函数错误地返回TRUE,而(如上所述),如果从内联调用或直接从控制台调用,则语句本身运行正确。
其他浏览器(IE,FF)不会返回错误结果。
有人能解释一下吗?
'ontouchstart' in window
。至于为什么它不起作用:我会查看Modernizr的操作。 - Pointy