1.在chrome控制台上输入navigator.userAgent,结果如下:
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36"
2.在firefox控制台上输入navigator.userAgent,结果如下:
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0"
search方法或indexOf方法:
两者都是返回某个指定的字符串值在字符串中首次出现的位置,search方法的参数可以是正则表达式;
match方法,stringObject.match(searchvalue)或stringObject.match(regexp),如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。该数组的第 0 个元素存放的是匹配文本,而其余的元素存放的是与正则表达式的子表达式匹配的文本。除了这些常规的数组元素之外,返回的数组还含有两个对象属性。index 属性声明的是匹配文本的起始字符在 stringObject 中的位置,input 属性声明的是对 stringObject 的引用。
常见例子:
// bootstrap-filestyle.js中,Check if browser is Firefox
window.navigator.userAgent.search(/firefox/i) > -1// /i表示忽略大小
//chrome
window.navigator.userAgent.indexOf("Chrome") !== -1
//dataTables.tableTools.js中,判断是否是firefox
navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)
另见http://www.muzilei.com/archives/142
window.navigator.userAgent属性包含了浏览器类型、版本、操作系统类型、浏览器引擎类型等信息,通过这个属性来判断浏览器类型,下面是我写的一个函数,这个函数返回一个包含浏览器名称和版本的数组。
此函数可区分ie5.5~ie8、Chrome、Opera、Safair、Firefox这5种常见浏览器。
function browser (){
var ua=window.navigator.userAgent,
ret="";
if(/Firefox/g.test(ua)){
ua=ua.split(" ");
ret="Firefox|"+ua[ua.length-1].split("/")[1];
}else if(/MSIE/g.test(ua)){
ua=ua.split(";");
ret="IE|"+ua[1].split(" ")[2];
}else if(/Opera/g.test(ua)){
ua=ua.split(" ");
ret="Opera|"+ua[ua.length-1].split("/")[1];
}else if(/Chrome/g.test(ua)){
ua=ua.split(" ");
ret="Chrome|"+ua[ua.length-2].split("/")[1];
}else if(/^apple\s+/i.test(navigator.vendor)){
ua=ua.split(" ");
ret="Safair|"+ua[ua.length-2].split("/")[1];
}else{
ret="未知浏览器";
}
return ret.split("|");
}
//调用函数,返回一个数组,r[0]是浏览器名称,r[1]是版本号
var r=browser();
alert(r);
浙公网安备 33010602011771号