下面的checkbrowser()函数主要检测了三种浏览器(ie, firefox, chrome),其它的浏览器的检测有兴趣的朋友可以自行添加检测代码!
html部分代码: (页面加载时执行检测函数)
复制代码 代码如下:
javascript部分代码:
检测的原理主要根据 浏览器的用户代理报头nanigator.useragent中提取到浏览器和类型及版本信息,利用正则表达式可以很容易的满足我们的需求,如对正则表达式不熟悉,可参照此文(正则表达式)
复制代码 代码如下:
function check(reg) {
var ug = navigator.useragent.tolowercase();
return reg.test(ug);
}
function checkbrowser() {
var ug = navigator.useragent.tolowercase();
var useragent = document.getelementbyid(useragent);
useragent.innerhtml = 浏览器的用户代理报头: + ug;
var browsertype = ;
var ver = ;
//检测ie及版本
var ie = ug.match(/msie\s*\d\.\d/); //提取浏览器类型及版本信息,注match()方法返回的是数组而不是字符串
var isie = check(/msie/);
if(isie) {
browsertype = internet explorer;
ver = ie.join( ).match(/[0-9]/g).join(.); //先用join()方法转化为字符串,然后用match()方法匹配到版本信息,再用join()方法转化为字符串
}
//检测chrome及版本
var chrome = ug.match(/chrome\/\d\.\d/gi);
var ischrome = check(/chrome/);
if(ischrome) {
browsertype = chrome;
ver = chrome.join( ).match(/[0-9]/g).join(.);
}
//检测firefox及版本
var firefox = ug.match(/firefox\/\d\.\d/gi);
var isfirefox = check(/firefox/);
if(isfirefox) {
browsertype = firefox;
ver = firefox.join( ).match(/[0-9]/g).join(.);
}
var browser = document.getelementbyid(browser);
browser.innerhtml = 您正在使用的浏览器为: + browsertype + 版本为: + ver;
}
ps:各浏览器的用户代理信息如下:
ie:mozilla/5.0 (compatible; msie 9.0; windows nt 6.1; trident/5.0; slcc2; .net clr 2.0.50727; .net clr 3.5.30729; .net clr 3.0.30729; media center pc 6.0; infopath.3; boie9;zhcn);
firefox:mozilla/5.0 (windows nt 6.1; rv:2.0) gecko/20100101 firefox/4.0;
chrome:mozilla/5.0 (windows; u; windows nt 6.1; en-us) applewebkit/534.13 (khtml, like gecko) chrome/9.0.597.98 safari/534.13