5-3,为什么在chrome打开却提示说是safari?

5-3,为什么在chrome打开却提示说是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");

          btn.onclick= function (){

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

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

              browser="IE";

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

              browser="Firefox";

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

               browser="Safari";

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

              browser="Chrome";

            }

           return  alert("您使用的浏览器是:"+browser+"浏览器")

            

           }

     

  

       </script>

    </body>

</html>

       </script>

    </body>

</html>


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

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

3回答
OlafChou 2017-07-20 20:34:54
<!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");
            // 函数封装
           function getBrowser(){
            var explorer = navigator.userAgent,browser;
            if(explorer.indexOf("MISE")>-1){
            browser="IE";
            }else if(explorer.indexOf("Safari")>0 && explorer.indexOf("Chrome")<0){
            browser="Safari";
            }else if(explorer.indexOf("Chrome")>0){
            browser="Chrome";
            }else if(explorer.indexOf("Opera")>-1){
            browser="Opera";
            }return browser;
            }  
            btn.onclick=function(){
             var explorer=getBrowser();
            alert("您使用的浏览器是"+explorer+"浏览器");
            
        };
          
            
              
            
       </script>
    </body>
</html>

采纳一下吧,让我加个学分啊

OlafChou 2017-07-20 06:52:04
 // Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36
           
          
 // Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.1.1 Safari/603.2.4

老师怎么区分???

小丸子爱吃菜 2017-07-19 18:27:55

谷歌浏览器的信息如下:

http://img1.sycdn.imooc.com/climg//596f33a800017e7811090087.jpg

它里面有safari这个关键字,所以判断条件执行的时候,就会走下面这行代码

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

               browser="Safari";

如果想进行更好的区分的话,可以对比这两个浏览器的信息,通过别的关键字的获取来判断。

祝学习愉快!


  • 我知道了,这样的代码就必须chrome写在Safari前面就可以了
    2017-07-19 21:20:00
  • Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.1.1 Safari/603.2.4 老师其他方法咋区分,完全没法区分啊。。
    2017-07-20 06:50:47
  • 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操作系统。 希望可以帮到你! 2017-06-26 11:28:18 Heino 教学设计师 2 14240 ①变量的声明书写错误:var声明完一个变量需要添加;分号结束,另外使用同一个var声明两个或多个变量的时候需要使用,逗号隔开,结束仍然使用分号结束,将你的变量声明修改如下: var a = document.getElementById("browser"); var h = navigator.userAgent.toLowerCase(), ②由于safari、chrome等浏览器具有相同的内核(也就是说只能判断不同内核的浏览器),因此判断结果是一样的,即在chrome中判断浏览器会输出safari,如若想显示chrome,则需要先判断呢chrome再判断safari。希望可以帮到你!
    2017-07-20 21:36:06
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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