检测IE <11是否可靠

问题描述 投票:1回答:2

是否存在检测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总是可以访问这些信息吗?

javascript internet-explorer browser-detection
2个回答
0
投票

在IE11而不是早期版本中存在的主要特征之一(尽管实施不当)是const。所以你可以在const中创建一个eval变量,看看是否抛出了错误。

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

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>

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

© www.soinside.com 2019 - 2024. All rights reserved.