我编写了一个 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/4817029/