navigator.userAgent的

时间:2011-02-13 21:27:19

标签: javascript

我正在尝试检测浏览器是否为Safari。如果是这样,那么只做一些事情。在所有其他浏览器中,执行其他操作:

if ( navigator.userAgent.toLowerCase().indexOf('safari') == -1) {
    //if safari execute some function
} else {
   // if other browsers execute other function
}

但是,我想我没有使用正确的方法,因为它不起作用。 :P

3 个答案:

答案 0 :(得分:4)

if(typeof navigator.vendor!='undefined') &&
   navigator.vendor.toLowerCase().indexOf('apple')!=-1){
    ...
}

答案 1 :(得分:3)

Quirksmode有一个Browser Detection Script,您可以使用它来检测正在使用的不同浏览器,然后根据该浏览器类型执行不同的操作。

在引擎盖下,它基本上使用了您尝试使用的相同技术。

在你的例子中,你实际上很接近。快速解决方法是将==更改为!=,瞧,您的脚本应该可以使用!

但是,我正在运行Chrome,而不是Safari!但是,在我的用户代理字符串中,我看到以下内容:

"Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.10 
      (KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10"

单词“Safari”出现在我的userAgent字符串中,这意味着,使用您的脚本,我的浏览器将被视为Safari!

答案 2 :(得分:1)

我最终使用

var isSafari = navigator.userAgent.match(/safari/i) != null && navigator.userAgent.match(/chrome/i) == null;

if(isSafari){
    // code here
  }