我正在使用此函数来检测设备是否是触摸设备:
function is_touch_device()
{
return !!('ontouchstart' in window) || !!('onmsgesturechange' in window);
};
从这里得到这个功能:使用 JavaScript 检测“触摸屏”设备的最佳方法是什么? https://stackoverflow.com/questions/4817029/whats-the-best-way-to-detect-a-touch-screen-device-using-javascript
但自 Chrome 25 (25.0.1364) 起,它在我的桌面上返回 true,该桌面不是触摸设备。
另外,我已将 IE9 更新为 IE10,并且在 IE 中返回 true!
四处搜索,但找不到任何有用的东西来解决这个问题,除了使用这样的东西:http://Detectmobilebrowsers.com/ http://detectmobilebrowsers.com/
你有什么建议吗?
我期待您的回复!
代码工作得很好,浏览器能够理解触摸事件,仅仅因为您的屏幕不可触摸并不意味着浏览器不支持该功能。您想要测试的是无法真正测试的硬件功能。您始终可以使用不同的方式来查看用户在触摸一次后是否真正使用触摸界面,例如this http://alastairc.ac/2010/03/detecting-touch-based-browsing/文章描述了,或大型图书馆使用的许多其他内容,例如 Modernizer。
作为参考,上面文章中实际使用的代码是:
function isTouchDevice() {
var el = document.createElement('div');
el.setAttribute('ongesturestart', 'return;');
if(typeof el.ongesturestart == "function"){
return true;
}else {
return false
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)