如果用户有移动浏览器,我正在寻找一个返回布尔值的函数。
我知道我可以使用 navigator.userAgent
并使用正则表达式编写该函数,但是对于不同的平台,用户代理的种类太多了。我怀疑匹配所有可能的设备会很容易,而且我认为这个问题已经解决了很多次,所以应该有某种完整的解决方案来完成这样的任务。
我在看 这个网站,但遗憾的是这个脚本太神秘了,我不知道如何将它用于我的目的,即创建一个返回真/假的函数。
原文由 ave 发布,翻译遵循 CC BY-SA 4.0 许可协议
怎么样:
if (typeof screen.orientation !== 'undefined') { ... }
…因为智能手机通常支持此属性而桌面浏览器不支持。请参见 MDN 。
编辑 1: 正如@Gajus 指出的那样, window.orientation
现在 已弃用,不应使用。
编辑 2: 您可以使用实验性的 screen.orientation
而不是弃用的 window.orientation
。请参见 MDN 。
编辑 3: 从 window.orientation 更改为 screen.orientation
原文由 yoav barnea 发布,翻译遵循 CC BY-SA 4.0 许可协议
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
使用正则表达式(来自 detectmobilebrowsers.com ):
这是一个使用非常长而全面的正则表达式的函数,它根据用户是否使用手机浏览来返回
true
或false
值。对于那些希望在此测试中包含平板电脑的人(尽管可以说您不应该),您可以使用以下功能:
使用 navigator.userAgentData
您也可以使用
navigator.userAgentData.mobile
,但userAgentData
仍处于试验阶段,因此不建议在生产环境中使用。userAgentData 的兼容性图表
原始答案
您可以通过简单地运行设备列表并检查
useragent
是否匹配以下内容来做到这一点:但是,由于您认为这种方法不可靠,您可以假设任何分辨率为 800x600 或更低的设备也是移动设备,从而进一步缩小您的目标(尽管如今许多移动设备的分辨率远高于此)
IE
参考: