Reputation: 3359
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 ?
Upvotes: 6
Views: 27321
Reputation: 15913
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)
Upvotes: 2
Reputation: 635
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');
Upvotes: 0
Reputation: 3162
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;
}());
Upvotes: 1