我编写了一个可在桌面和移动设备上使用的 jQuery 插件。我想知道是否有一种方法可以使用 JavaScript 来检测设备是否具有触摸屏功能。我正在使用 jquery-mobile.js 来检测触摸屏事件,它适用于 iOS、Android 等,但我还想根据用户的设备是否有触摸屏编写条件语句。
这可能吗?
最佳答案
2021 年更新
要查看旧答案:查看历史记录。我决定从头开始,因为在帖子中保留历史时它会失控。
我原来的回答说,使用与 Modernizr 所使用的功能相同的功能可能是个好主意,但这不再有效,因为他们删除了此 PR 上的“touchevents”测试:https://github.com/Modernizr/Modernizr/pull/2432因为它是一个令人困惑的主题。
话虽如此,这应该是一种检测浏览器是否具有“触摸功能”的相当不错的方法:
function isTouchDevice() {
return (('ontouchstart' in window) ||
(navigator.maxTouchPoints > 0) ||
(navigator.msMaxTouchPoints > 0));
}
但是对于比我聪明得多的人所写的更高级的用例,我建议阅读这些文章:
关于javascript - 使用 JavaScript 检测 'touch screen' 设备的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10561475/