6

If IE <9 then or mozilla < 35 or Chrome < 39 or safari < s7 then, it should redirect to browser support page.

Tried using below code but, it did not work.. it only work when, i have opend the object inspector window in IE.

 <!--[if lt IE 9 ]>
<script type='text/javascript'>
    console.log("its less than IE 9");        
window.location.href="BrowserSupport.html";
</script>

Please guide me how can i detect for these browsers version and redirect to browser support page ?

dsi
  • 3,199
  • 12
  • 59
  • 102
  • `replace` might be a better call anyway: http://stackoverflow.com/questions/503093/how-can-i-make-a-redirect-page/506004#506004 – Bram Vanroy Mar 09 '15 at 11:14

3 Answers3

2

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 15+, the true version is after "OPR/" 
if ((verOffset=nAgt.indexOf("OPR/"))!=-1) {
 browserName = "Opera";
 fullVersion = nAgt.substring(verOffset+4);
}
// In older Opera, the true version is after "Opera" or after "Version"
else 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);
}
// In Firefox, the true version is after "Firefox" 
else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
 browserName = "Firefox";
 fullVersion = nAgt.substring(verOffset+8);
}
// In most other browsers, "name/version" is at the end of userAgent 
else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < 
          (verOffset=nAgt.lastIndexOf('/')) ) 
{
 browserName = nAgt.substring(nameOffset,verOffset);
 fullVersion = nAgt.substring(verOffset+1);
 if (browserName.toLowerCase()==browserName.toUpperCase()) {
  browserName = navigator.appName;
 }
}
// trim the fullVersion string at semicolon/space if present
if ((ix=fullVersion.indexOf(";"))!=-1)
   fullVersion=fullVersion.substring(0,ix);
if ((ix=fullVersion.indexOf(" "))!=-1)
   fullVersion=fullVersion.substring(0,ix);

majorVersion = parseInt(''+fullVersion,10);
if (isNaN(majorVersion)) {
 fullVersion  = ''+parseFloat(navigator.appVersion); 
 majorVersion = parseInt(navigator.appVersion,10);
}


     alert("Name:"+browserName+" Version "+majorVersion)
Tushar Gupta
  • 15,504
  • 1
  • 29
  • 47
  • Pasted this inside head tag but, not working. not able to get brwoser name and verson. please guide. – dsi Mar 09 '15 at 10:28
1

Update the code. Now it will work fine

/*
 * Browser Detect script
 */
BrowserDetect = (function() {
 // script settings
 var options = {
  osVersion: true,
  minorBrowserVersion: true
 };

 // browser data
 var browserData = {
  browsers: {
   chrome: uaMatch(/Chrome\/([0-9\.]*)/),
   firefox: uaMatch(/Firefox\/([0-9\.]*)/),
   safari: uaMatch(/Version\/([0-9\.]*).*Safari/),
   opera: uaMatch(/Opera\/.*Version\/([0-9\.]*)/, /Opera\/([0-9\.]*)/),
   msie: uaMatch(/MSIE ([0-9\.]*)/, /Trident.*rv:([0-9\.]*)/)
  },
  engines: {
   webkit: uaContains('AppleWebKit'),
   trident: uaMatch(/(MSIE|Trident)/),
   gecko: uaContains('Gecko'),
   presto: uaContains('Presto')
  },
  platforms: {
   win: uaMatch(/Windows NT ([0-9\.]*)/),
   mac: uaMatch(/Mac OS X ([0-9_\.]*)/),
   linux: uaContains('X11', 'Linux')
  }
 };

 // perform detection
 var ua = navigator.userAgent;
 var detectData = {
  platform: detectItem(browserData.platforms),
  browser: detectItem(browserData.browsers),
  engine: detectItem(browserData.engines)
 };

 // private functions
 function uaMatch(regExp, altReg) {
  return function() {
   var result = regExp.exec(ua) || altReg && altReg.exec(ua);
   return result && result[1];
  };
 }
 function uaContains(word) {
  var args = Array.prototype.slice.apply(arguments);
  return function() {
   for(var i = 0; i < args.length; i++) {
    if(ua.indexOf(args[i]) < 0) {
     return;
    }
   }
   return true;
  };
 }
 function detectItem(items) {
  var detectedItem = null, itemName, detectValue;
  for(itemName in items) {
   if(items.hasOwnProperty(itemName)) {
    detectValue = items[itemName]();
    if(detectValue) {
     return {
      name: itemName,
      value: detectValue
     };
    }
   }
  }
 }

 // add classes to root element
 (function() {
  // helper functions
  var addClass = function(cls) {
   var html = document.documentElement;
   html.className += (html.className ? ' ' : '') + cls;
  };
  var getVersion = function(ver) {
   return typeof ver === 'string' ? ver.replace(/\./g, '_') : 'unknown';
  };

  // add classes
  if(detectData.platform) {
   addClass(detectData.platform.name);
   if(options.osVersion) {
    addClass(detectData.platform.name + '-' + getVersion(detectData.platform.value));
   }
  }
  if(detectData.engine) {
   addClass(detectData.engine.name);
  }
  if(detectData.browser) {
   addClass(detectData.browser.name);
   addClass(detectData.browser.name + '-' + parseInt(detectData.browser.value, 10));
   if(options.minorBrowserVersion) {
    addClass(detectData.browser.name + '-' + getVersion(detectData.browser.value));
   }
  }
 }());

 // export detection information
 return detectData;
}());
Ram kumar
  • 3,152
  • 6
  • 32
  • 49
0

You could simply use something already made like which browser. Just download it from github. It's often easier and better as writing your own version of the wheel.

Edit: since you provide more info in the comment and "which broser" uses some php, whicle you use asp, here is a pure javascript solution using jquery: Jquery Browser .

if ( $.browser.msie ) {
    alert( $.browser.version );
}

and the you can redirect with jquery as well:

$(location).attr('href','http://examplesite.com/whatever.html');
BogdanM
  • 625
  • 1
  • 6
  • 10
  • I am using ASP.NET application. Please guide how to incorporate that to resolve this. – dsi Mar 09 '15 at 10:02
  • 1
    You don't need to use jquery to modify the location object. `location.href = 'http://examplesite.com/whatever.html'` works just fine. – Alex K Jul 08 '15 at 02:12
  • @AlexKinnee that is true, but then again he does not have to use jquery either. I simply think that while using the framework to do something is just more consistent to use it for the other thing as well. – BogdanM Jul 08 '15 at 12:32