1

I know this is not the most reliable way, but I don't really have many other choices. I essentially need to detect what browser and version visits my website. If it is a certain browser/version, it will display a message. This is for the TLS issue, whereby certain browser versions will not display a https page.

Anyways, at the moment I have something like the following

function getBrowserInfo()
{
 var ua = navigator.userAgent, tem,
 M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
 if(/trident/i.test(M[1]))
 {
 tem= /\brv[ :]+(\d+)/g.exec(ua) || [];
 return 'IE '+(tem[1] || '');
 }
 if(M[1]=== 'Chrome')
 {
 tem= ua.match(/\b(OPR|Edge)\/(\d+)/);
 if(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera');
 }
 M = M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
 if((tem= ua.match(/version\/(\d+)/i))!= null)
 M.splice(1, 1, tem[1]);
 return M.join(' ');
}
var browserInfo = getBrowserInfo();
browserInfo = browserInfo.split(" ");
$(function () {
 alert(browserInfo);
 if(browserInfo[0] == 'Firefox' && browserInfo[1] < 27) {
 alert("Firefox");
 }
 if(browserInfo[0] == 'Chrome' && browserInfo[1] < 22) {
 alert("Chrome");
 }
 if(browserInfo[0] == 'IE' && browserInfo[1] < 11) {
 alert("IE");
 }
 if(browserInfo[0] == 'Safari' && browserInfo[1] < 11) {
 alert("Safari");
 }
 if(browserInfo[0] == 'Opera' && browserInfo[1] < 14) {
 alert("Safari");
 }
});

One thing that concerns me is the splitting of the string, incase a browser returns a different format. Additionally, I think all of these if statements are redundant, but I cant think of a more efficient way to do this.

Essentially, I am looking for advice as to the best way to detect a browser, and its version, so I can display a custom message for that browser.

Thanks

SidOfc
4,6143 gold badges30 silver badges50 bronze badges
asked Dec 15, 2015 at 10:22
3

2 Answers 2

3

It seems like you're using jQuery. You could detect the browser version using $.browser, but that feature is deprecated starting from version 1.9.1.

I would advise using this jQuery-plugin, which supports browser type & version detection: https://github.com/gabceb/jquery-browser-plugin

Using this plugin, you can test for browser vendors using this code:

if($.browser.msie) {
 alert('ie');
}
if($.browser.mozilla) {
 alert('firefox');
}
...

If you would like to check for the version of the browser, you could use this code:

$.browser.version
answered Dec 15, 2015 at 10:35
Sign up to request clarification or add additional context in comments.

Comments

0

Return ie version using javascript

function getInternetExplorerVersion()
 // Returns the version of Internet Explorer or a -1
 // (indicating the use of another browser).
{
 var rv = -1; // Return value assumes failure.
 if (navigator.appName == 'Microsoft Internet Explorer') 
{
 var ua = navigator.userAgent;
 var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
 if (re.exec(ua) != null)
 rv = parseFloat(RegExp.1ドル);
 }
 return rv;
}
answered Jan 14, 2016 at 0:53

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.