检查是不是返回我是不是在智能手机上的 JavaScript? [复制]

Posted

技术标签:

【中文标题】检查是不是返回我是不是在智能手机上的 JavaScript? [复制]【英文标题】:A check in JavaScript that returns whether I am on a smartphone? [duplicate]检查是否返回我是否在智能手机上的 JavaScript? [复制] 【发布时间】:2012-06-16 08:17:56 【问题描述】:

我想检查我的一个 javascript 函数,以确定我是否在智能手机上,然后根据结果决定是否运行该函数。

在 JavaScript 中检测/检查智能手机(或一般的手持设备)的最佳方法是什么?

例如

if (user is on a smartphone) 
//run this code if on a phone
 else 
//run this code if not on a phone

如果没有一种确定的方法来检查手机,那么在决定运行哪些代码之前,我应该执行哪些最佳检查选择?

编辑/更新:这个类似帖子上的答案和 cmets 应该给我一些继续 - What is the best way to detect a mobile device in jQuery?

【问题讨论】:

这可能会有所帮助:***.com/questions/10823144/… @ilanco 谢谢我找不到那个帖子。我认为那里的答案/cmets 应该给我一些工作。 我想这里已经给出了答案:***.com/questions/3514784/… 版主:如果楼主能关闭自己的问题就好了。我知道有一个投票系统可以做到这一点......谁知道可能会更好 【参考方案1】:

老旧的浏览器嗅探似乎是解决方案

if( navigator.userAgent.match(/android/i)
 || navigator.userAgent.match(/webOS/i)
 || navigator.userAgent.match(/iPhone/i)
 || navigator.userAgent.match(/iPad/i)
 || navigator.userAgent.match(/iPod/i)
 || navigator.userAgent.match(/BlackBerry/i)
 )
 // some code..

【讨论】:

我在上面发布的链接上有这个答案的副本。 是的,我无耻地从那里偷了它。认为作为问题的实际答案可能值得多强调一下。【参考方案2】:

你可以试试 twitter 引导程序,http://twitter.github.com/bootstrap/scaffolding.html。特别是响应式设计部分。

【讨论】:

Bootstrap 是纯 CSS 并且没有 Javascript 检测。 (一如既往)有一个丑陋的黑客:***.com/questions/14441456/…【参考方案3】:

您可以使用Categorizr JS库来测试用户的设备是手机、平板、智能电视还是台式机。 Categorizr 使用用户代理嗅探,因此您应该留意脚本的更新,因为用户代理会随着时间的推移而“演变”。

以下是使用 Categorizr 检查用户是否使用智能手机而非智能电视、台式机或平板电脑的方法:

if (categorizr.isMobile) 
    //run this code if on a phone
 else 
    //run this code if not on a phone

【讨论】:

以上是关于检查是不是返回我是不是在智能手机上的 JavaScript? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

jquery 怎么判断是不是点击手机上的返回键?求大神指点!

“打开FTP服务器上的文件夹时发生错误,请检查是不是有权限访问该文件夹”怎么解决

检测安卓手机是不是连接到局域网

Android,检查是不是按下了返回按钮

如何使用浏览器后退按钮关闭引导模式而不是返回页面?`

如何检查字符串是不是在列表中,使用每个项目上的函数(python3)[重复]