JavaScript 如何检查用户是否在使用Internet Explorer
在某些情况下,我们可能需要检查正在使用的浏览器。您的网站的某些功能可能在旧浏览器如Internet Explorer(IE)中不受支持。有不同的方法可以检查正在使用的Internet Explorer版本。
语法-1: 对于Internet Explorer 10或更早的版本
var ua = window.navigator.userAgent;
var msie = ua.indexOf('MSIE ');
if (msie > 0) {
// IE 10 or older => return version number
return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
}
语法-2: 适用于Internet Explorer 11
var ua = window.navigator.userAgent;
var trident = ua.indexOf('Trident/');
if (trident > 0) {
// IE 11 => return version number
var rv = ua.indexOf('rv:');
return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
}
语法-3: 针对Internet Explorer 12+(Edge)
var ua = window.navigator.userAgent;
var edge = ua.indexOf('Edge/');
if (edge > 0) {
// Edge (IE 12+) => return version number
return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);
}
示例:
<!DOCTYPE html>
<html>
<head>
<title>
Detects user uses Internet Explorer
</title>
</head>
<body>
<center>
<h1 style="color:green">GeeksforGeeks</h1>
<script>
//detects if user uses Internet Explorer
//returns version of IE or false, if browser is not IE
//Function to detect IE or not
function IEdetection() {
var ua = window.navigator.userAgent;
var msie = ua.indexOf('MSIE ');
if (msie > 0) {
// IE 10 or older, return version number
return ('IE ' + parseInt(ua.substring(
msie + 5, ua.indexOf('.', msie)), 10));
}
var trident = ua.indexOf('Trident/');
if (trident > 0) {
// IE 11, return version number
var rv = ua.indexOf('rv:');
return ('IE ' + parseInt(ua.substring(
rv + 3, ua.indexOf('.', rv)), 10));
}
var edge = ua.indexOf('Edge/');
if (edge > 0) {
//Edge (IE 12+), return version number
return ('IE ' + parseInt(ua.substring(
edge + 5, ua.indexOf('.', edge)), 10));
}
// User uses other browser
return ('Not IE');
}
var result = IEdetection();
document.write(result);
</script>
</center>
</body>
</html>
输出: (使用Firefox打开):
Not IE
输出 (在IE 11中打开):
IE 11
输出结果 (使用Edge打开):
IE 18