有个问题,浏览器信息里面同时有Safari和chrome的字符串

有个问题,浏览器信息里面同时有Safari和chrome的字符串

这个是我的浏览器信息的截取:

Chrome/58.0.3029.110 Safari/537.36"

我的谷歌浏览器判断依然是safari浏览器。 


<!DOCTYPE html>

<html>

    <head>

        <meta charset="UTF-8">

        <title>userAgent</title>

    </head>

    <body>

       <input type="button" value="点击获取浏览器信息" id="browser">

       <script type="text/javascript">

        var btn = document.getElementById('browser');

        console.log(btn);

        btn.onclick = function(){

          var explorer = navigator.userAgent.toLowerCase(),browser;

          if (explorer.indexOf("msie")>-1) {

           explorer = "IE浏览器";

          }else if(explorer.indexOf("firefox")>-1) {

           explorer = "火狐浏览器";

          }else if(explorer.indexOf("safari")>-1) {

           explorer = "Safari";

          }else if(explorer.indexOf("chrome")>-1) {

           explorer = "Chrome浏览器";

          }

          alert(explorer);

       }

       </script>

    </body>

</html>

当然,如果把Safari和谷歌浏览器的判断顺序改一下,也能正常判断
但我就好奇,如果别人的safari浏览器信息里如果也会出现chrome字符串,那该怎么办?
求更优方法


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
卡布琦诺 2017-06-26 11:28:18

Windows操作系统浏览器判断:

IE浏览器系列:
特征表现:均以 "mozilla/" 开头,"msie x.0;" 中的x表示其版本;
判断方法:粗略判断可以只检索 "msie x.0;" 字符串即可,严格判断可检索 "mozilla/x.0 (compatibal; msie x.0; windows nt",不过一般没有这个必要
Windows版Firefox:
特征表现:以"mozilla/x.0"开头,包含"windows nt","gecko/"和"firefox/" ;
判断方法:粗略判断可以只检索 "firefox/"和"windows nt" 字符串,严格判断可以检索"mozilla/" ,"windows nt","gecko/"和"firefox/" 四个字符串;
Windows版Chrome:
特征表现: 以"mozilla/x.0"开头,包含"windows nt","chrome/",同时包含"applewebkit/","safari/";
判断方法:粗略判断可以只检索 "windows nt"和"chrome/"字符串,严格判断可以同时检索 "mozilla/" ,"windows nt","applewebkit/","safari/","chrome/" 五个字符串;
Windows版Opera:
特征表现:以"opera/"开头,含有"windows nt","presto/" 字符串;
判断方法:粗略判断只检索 "windows nt"和"opera/"字符串,严格判断同时检索 "opera/","windows nt" 和 "presto/";
Windows版Safari:
特征表现:以"mozilla/"开头,同时含有"windows nt","applewebkit/","safari/";
判断方法:粗略判断可以检索含有 "windows nt","safari/" 同时不包含 "chrome/",严格判断需要同时含有"mozilla/","windows nt","applewebkit/","safari/"但是不包含"chrome/";
小结:Windows操作系统上的浏览器userAgent均包含"windows nt"字符串来表征windows操作系统。 

希望可以帮到你!

  • 提问者 墨遥4328677 #1
    我的mac。
    2017-06-26 14:36:32
  • 卡布琦诺 回复 提问者 墨遥4328677 #2
    mac在userAgent里面检索含有"mac":苹果的Mac OS X或者其他Mac OS内核的系统;拓展:含有"windows nt":显而易见了,windows操作系统,nt后面的版本号可以判断OS版本; 含有"mac":苹果的Mac OS X或者其他Mac OS内核的系统; 含有"iphone":苹果iphone手机专有的,一般情况下也应该含有"mac"; 含有"ipad":苹果iPad平板电脑(资料表明iPad的浏览器userAgent同时含有"mac","iphone","ipad");
    2017-06-26 19:06:03
卖火柴的小老鼠 2017-06-25 23:44:08

我也是一样的,我觉得这是因为我们使用的Chrome浏览器浏览器里面本来就有关键字safari,具体什么回事就不知道,应该可以换测试关键字能证明是chrome浏览器的,别纠结这个问题

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师