navigator.userAgent
I am trying开发者_Python百科 to detect if the browser is Safari. If so, only then do something. In all other browsers, do something else:
if ( navigator.userAgent.toLowerCase().indexOf('safari') == -1) {
//if safari execute some function
} else {
// if other browsers execute other function
}
However, I guess I am not using the right approach because it's not working. :P
if(typeof navigator.vendor!='undefined') &&
navigator.vendor.toLowerCase().indexOf('apple')!=-1){
...
}
Quirksmode has a Browser Detection Script that you can use to detect the different browsers that are being used and then perform different actions based on that browser type.
Under the hood, it's essentially using the same technique that you are trying to use.
In your example, you actually are close. A quick fix is to just change the ==
to !=
and voila, your script should work!
However, I am running Chrome, not Safari! Yet, in my user agent string, I see the following:
"Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.10
(KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10"
The word "Safari" appears in my userAgent String, which means that, using your script, my browser would be treated as if it were Safari!
I ended up using
var isSafari = navigator.userAgent.match(/safari/i) != null && navigator.userAgent.match(/chrome/i) == null;
if(isSafari){
// code here
}
精彩评论