H5判断
<!--[if IE 6]>仅IE6可识别<![endif]-->
<!--[if lte IE 6]> IE6及其以下版本可识别<![endif]-->
<!--[if lt IE 6]> IE6以下版本可识别<![endif]-->
<!--[if gte IE 6]> IE6及其以上版本可识别<![endif]-->
<!--[if gt IE 6]> IE6以上版本可识别<![endif]-->
<!--[if IE]> 所有的IE可识别<![endif]-->
<!--[if !IE]><!--> 除IE外都可识别<!--<![endif]-->
JS判断
JavaScript中可以通过获取window.navigator.userAgent
的值来判断浏览器类型,使用此方法就可以判断是否是IE浏览器。
Navigator对象中包含有关浏览器的信息,而userAgent属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。跟踪这个信息,发现在开发环境,识别为IE10,但访问服务器则识别为IE11,但IE11的userAgent里是没有MSIE标志的,所以下面的第一个方法对IE11不起作用。
function isIE() {
return window.navigator.userAgent.indexOf('MSIE') >= 1
}
这个方法,edge浏览器中为false,ie11中为false。
function isIE() {
return !!window.ActiveXObject || 'ActiveXObject' in window
}
这个方法,edge浏览器中为false,ie11为true。
function IEVersion() {
const userAgent = navigator.userAgent // 取得浏览器的userAgent字符串
const isIE = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1 // 判断是否IE<11浏览器
const isEdge = userAgent.indexOf('Edge') > -1 && !isIE // 判断是否IE的Edge浏览器
const isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf('rv:11.0') > -1
if (isIE) {
const reIE = new RegExp('MSIE (\\d+\\.\\d+);')
reIE.test(userAgent)
const fIEVersion = parseFloat(RegExp['$1'])
if (fIEVersion === 7) {
return 7
} else if (fIEVersion === 8) {
return 8
} else if (fIEVersion === 9) {
return 9
} else if (fIEVersion === 10) {
return 10
} else {
return 6 // IE版本<=7
}
} else if (isEdge) {
return 'edge' // edge
} else if (isIE11) {
return 11 // IE11
} else {
return -1 // 不是ie浏览器
}
}
这个方法IE浏览器返回版本号,Edge浏览器返回edge,不是IE浏览器返回-1。