首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测用户是否正在通过iphone上的safari移动浏览器导航

检测用户是否正在通过iphone上的safari移动浏览器导航
EN

Stack Overflow用户
提问于 2014-08-11 11:14:33
回答 3查看 9.3K关注 0票数 3

我试图检测用户是否正在使用jquery / javascript从iphone上的safari浏览器中导航我的网站。

我能够使用用户代理字符串检测IOS环境

/iphone/i.test(navigator.userAgent.toLowerCase())

但是这会检测到Apple环境,也就是说,它对设备上的所有浏览器都是一样的。有谁能提出别的办法吗。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-11 11:25:48

更新:

尝试以下操作,以检测iPhone中的Safari浏览器:

代码语言:javascript
复制
var isSafari = !!navigator.userAgent.match(/Version\/[\d\.]+.*Safari/);

它识别了Safari 3.0+,并将其与Chrome区别开来。

JsFiddle

票数 6
EN

Stack Overflow用户

发布于 2016-08-29 14:55:15

因为另一个答案不包括检测iPhone,包括那个部分。

代码语言:javascript
复制
var isIphone = /(iPhone)/i.test(navigator.userAgent);
var isSafari = !!navigator.userAgent.match(/Version\/[\d\.]+.*Safari/);

if(isIphone && isSafari){
    //do something
}

如果您想检测特定的iOS版本及以上版本,比如iOS 7.0及以上版本,那么您可以使用下面的代码。它检测iOS版本7-19(针对即将发布的版本)。

代码语言:javascript
复制
var isIphone= /(iPhone)*(OS ([7-9]|1[0-9])_)/i.test(navigator.userAgent);  
票数 2
EN

Stack Overflow用户

发布于 2021-09-09 10:08:44

代码语言:javascript
复制
var isFirefox = navigator.userAgent.indexOf("FxiOS") != -1;  
var isChrome = navigator.userAgent.indexOf("CriOS") != -1;  
var isEdge = navigator.userAgent.indexOf("EdgiOS") != -1;  
var isOpera = navigator.userAgent.indexOf("OPT") != -1;

if (!isFirefox && !isChrome && !isEdge && !isOpera){  
  console.log("Only display in Safari")  
} else {  
  console.log("Only display in Firefox/Chrome/Edge/Opera")  
}        

嗨,这种方式对我来说只检测到ios手机中的safari。值FxiOs,CriOs等,我从userAgent值中得到。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25241932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档