[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 9020
  • Last Modified:

Best way to detect Safari browser using jQuery

I would like to know the best way to detect if a browser is specifically Safari using jQuery.

I am aware that webkit is shared by Chrome and Safari but I am specifically interested to know if the browser is Safari and nothing else.
0
mike99c
Asked:
mike99c
  • 2
2 Solutions
 
leakim971PluritechnicianCommented:
var isSafari = navigator.vendor.indexOf("Apple")==0 && /\sSafari\//.test(navigator.userAgent); // true or false

Open in new window

0
 
duncanb7Commented:
Dear mike99c,

You can use the following javascript code to test Safari browser or not
I put the  document.write in if statement for Safari browser detection only
and display it into body tag.
And if it is not Safari browser, it will keep the  message of "It is NOT Safari Browser" in body tag.

The document.write you can put in other if statement for other browser you want to test

Hope I understand your question completely, if not please pt it out,
The code is Not fully tested

Duncan


<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "/WEB/INF/xhtml1-strict.dtd">                                                  
  <html> <head> <meta http-equiv="CONTENT-TYPE" content="text/html; charset=UTF-8"/> 
  <meta http-equiv="CACHE-CONTROL" content="NO-STORE"/> 
  <meta http-equiv="EXPIRES" content="-1"/> 
  <title>Safari Browser Test</title> 
  <script type="text/javascript">
  function init(){
var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName  = navigator.appName;
var fullVersion  = ''+parseFloat(navigator.appVersion); 
var majorVersion = parseInt(navigator.appVersion,10);
var nameOffset,verOffset,ix;
// In Opera, the true version is after "Opera" or after "Version"
if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
 browserName = "Opera";
 fullVersion = nAgt.substring(verOffset+6);
 if ((verOffset=nAgt.indexOf("Version"))!=-1) 
   fullVersion = nAgt.substring(verOffset+8);
}
// In MSIE, the true version is after "MSIE" in userAgent
else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
 browserName = "Microsoft Internet Explorer";
 fullVersion = nAgt.substring(verOffset+5);
}
// In Chrome, the true version is after "Chrome" 
else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
 browserName = "Chrome";
 fullVersion = nAgt.substring(verOffset+7);
}
// In Safari, the true version is after "Safari" or after "Version" 
else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
 browserName = "Safari";
 fullVersion = nAgt.substring(verOffset+7);
 if ((verOffset=nAgt.indexOf("Version"))!=-1) 
   fullVersion = nAgt.substring(verOffset+8);
   
   txt ="<p id='pd0' style='color:blue'> It is Safarai Browser, Browser name  ="+browserName+'</p>';
   document.write(txt);
}
}
</script>
</head>
<body onload="init();">
It is NOT Safari Browser
</body>
</html>

Open in new window

0
 
duncanb7Commented:
Thanks for your pt, there is a lot of  solution in google search
for Jquery browser detection but that might NOT  be
consistent and that some  is depended on the jquery plugin version.

You can simplify those javascript code for  your need that is not depend on
javascript version

Have a nice day

Duncan
0

Featured Post

[Webinar] Cloud and Mobile-First Strategy

Maybe you’ve fully adopted the cloud since the beginning. Or maybe you started with on-prem resources but are pursuing a “cloud and mobile first” strategy. Getting to that end state has its challenges. Discover how to build out a 100% cloud and mobile IT strategy in this webinar.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now