检测IE <11是否可靠

时间:2019-04-04 14:03:45

标签: javascript internet-explorer browser-detection

是否存在检测IE浏览器版本的可靠方法?到目前为止,我已经尝试过了。

  • IE条件注释,不可靠
  • 用户代理HTTP请求标头,并非始终设置

我的下一个选择是尝试使用类似

的javascript
var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName  = navigator.appName;
var fullVersion  = ''+parseFloat(navigator.appVersion); 
var majorVersion = parseInt(navigator.appVersion,10);

但是javascript始终可以访问此信息吗?

2 个答案:

答案 0 :(得分:0)

const是IE11中(而非较早版本)存在的主要功能之一(尽管实现不佳)。因此,您只需在const中创建一个eval变量,然后查看是否抛出了错误。

function isIE11() {
  try {
    eval("const x = 1;");
    return true;
  } catch (err) {}
  return false;
}
console.log(isIE11());

答案 1 :(得分:0)

您可以尝试参考下面的代码示例,该代码示例可以标识IE7,IE8,IE9,IE10,IE11版本。

<!DOCTYPE html>
<html>
<head>
	<title>Page Title</title>
	<script>
	function GetIEVersion() {
  var sAgent = window.navigator.userAgent;
  var Idx = sAgent.indexOf("MSIE");

  // If IE, return version number.
  if (Idx > 0) 
    return parseInt(sAgent.substring(Idx+ 5, sAgent.indexOf(".", Idx)));

  // If IE 11 then look for Updated user agent string.
  else if (!!navigator.userAgent.match(/Trident\/7\./)) 
    return 11;

  else
    return 0; //It is not IE
}

if (GetIEVersion() > 0) 
   alert("This is IE " + GetIEVersion());
else 
   alert("This is not IE.");
GetIEVersion();
	</script>
</head>
<body>



</body>
</html>

此外,您可以尝试根据自己的要求修改此代码。