在做项目的时候,经常会遇到兼容问题,我们可以JS来判断浏览器类型,然后进行一些兼容处理。
var browser={
versions:function(){
var u = window.navigator.userAgent;
return {
trident: u.indexOf('Trident') > -1, //IE内核
presto: u.indexOf('Presto') > -1, //opera内核
webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
mobile: !!u.match(/AppleWebKit.*Mobile.*/)||!!u.match(/AppleWebKit/), //是否为移动终端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器
iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者安卓QQ浏览器
iPad: u.indexOf('iPad') > -1, //是否为iPad
webApp: u.indexOf('Safari') == -1 ,//是否为web应用程序,没有头部与底部
weixin: u.indexOf('MicroMessenger') == -1 //是否为微信浏览器
};
}()
}
document.writeln(" 是否为移动终端: "+browser.versions.mobile+"<br>");
document.writeln(" ios终端: "+browser.versions.ios+"<br>");
document.writeln(" android终端: "+browser.versions.android+"<br>");
document.writeln(" 是否为iPhone: "+browser.versions.iPhone+"<br>");
document.writeln(" 是否iPad: "+browser.versions.iPad+"<br>");
// document.writeln(navigator.userAgent);
document.writeln(" IE内核: "+browser.versions.trident+"<br>");
document.writeln(" opera内核: "+browser.versions.presto+"<br>");
document.writeln(" 苹果、谷歌内核: "+browser.versions.webKit+"<br>");
document.writeln(" 火狐内核: "+browser.versions.gecko+"<br>");谷歌浏览器:
360浏览器(兼容模式):
360浏览器(极速模式):

qq浏览器(极速模式):

ie浏览器:

综合来看,基本的正确,就是在判断是否为移动终端的时候,判断不清楚,我也不知道什么原因,但是基本判断是否为ie,作用还是可以的。
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
var isOpera = userAgent.indexOf("Opera") > -1;
//判断是否Opera浏览器
if (isOpera) {
console.log("Opera");
};
//判断是否Firefox浏览器
if (userAgent.indexOf("Firefox") > -1) {
console.log("FF");
}
//判断是否chorme浏览器
if (userAgent.indexOf("Chrome") > -1){
console.log("Chrome");
}
//判断是否Safari浏览器
if (userAgent.indexOf("Safari") > -1) {
console.log("Safari");
}
//判断是否IE浏览器
if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera) {
console.log("IE");
}
//判断是否Edge浏览器
if (userAgent.indexOf("Trident") > -1) {
console.log("Edge");
};这一段基本能判断是什么浏览器,我使用这个主要是区分ie模式和非ie模式的时候,目前ie浏览器分ie和edge。




最后
1.navigator.appCodeName:可以在开发者工具中在console下输入navigator.appCodeName,回车即可返回浏览器产品代号
2.var userAgent = navigator.userAgent:取得浏览器的userAgent字符串,用来判断浏览器类型








网友评论文明上网理性发言 已有0人参与
发表评论: