Chrome使用javascript检测为Safari

dev*_*s11 4 javascript safari google-chrome browser-detection

我正在寻找一种用JavaScript检测Safari的方法.我知道它已被覆盖很多次了,但可能有些东西被改变了,它不再起作用了.至少在我的情况下.

这是我做的:

<script>

    if(!isSafari()){
      alert('not Safari');
    } else {
      alert('I am Safari');
    }


    function isSafari(){    
      var is_safari = navigator.userAgent.indexOf("Safari") > -1;
      if(is_safari){
        return true;
      }
    }
  </script>
Run Code Online (Sandbox Code Playgroud)

jsbin:http://jsbin.com/ewerof/1

如果您在Safari和Chrome中运行此代码,您将获得相同的警报"我是Safari"那么如何实际检测Safari?我的Safari版本是4.0.3以防万一.

mrd*_*mrd 12

Chrome在userAgent字符串中包含"Chrome"和"Safari".Safari只有'Safari'.

这样可行:

var is_chrome = navigator.userAgent.indexOf('Chrome') > -1; 
var is_explorer = navigator.userAgent.indexOf('MSIE') > -1; 
var is_firefox = navigator.userAgent.indexOf('Firefox') > -1; 
var is_safari = navigator.userAgent.indexOf("Safari") > -1; 
var is_Opera = navigator.userAgent.indexOf("Presto") > -1; 
if ((is_chrome)&&(is_safari)) {is_safari=false;} 
Run Code Online (Sandbox Code Playgroud)

if(is_safari)alert('Safari');

或者仅限Safari,请使用:

if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) {alert('Its Safari');} 
Run Code Online (Sandbox Code Playgroud)

图片来源:Kabamaru