Javascript 检测IE<;11可靠地

Javascript 检测IE<;11可靠地,javascript,internet-explorer,browser-detection,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); va

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

IE11中的一个主要特性(尽管实现得很差)是。因此,您可以在
eval
中创建一个
const
变量,查看是否抛出了错误

函数isIE11(){
试一试{
评估(“常数x=1;”;
返回true;
}捕获(错误){}
返回false;
}
console.log(isIE11())IE11中存在而不是早期版本的一个主要特性(尽管实现得很差)是。因此,您可以在
eval
中创建一个
const
变量,查看是否抛出了错误

函数isIE11(){
试一试{
评估(“常数x=1;”;
返回true;
}捕获(错误){}
返回false;
}

console.log(isIE11())您可以尝试参考下面的代码示例,它可以识别IE7、IE8、IE9、IE10、IE11版本


页面标题
函数GetIEVersion(){
var sAgent=window.navigator.userAgent;
var Idx=sAgent.indexOf(“MSIE”);
//如果是IE,返回版本号。
如果(Idx>0)
返回parseInt(sAgent.substring(Idx+5,sAgent.indexOf(“.”,Idx));
//如果是IE 11,则查找更新的用户代理字符串。
else if(!!navigator.userAgent.match(/Trident\/7\./))
返回11;
其他的
返回0;//它不是IE
}
如果(GetIEVersion()>0)
警报(“这是IE”+GetIEVersion());
其他的
警惕(“这不是IE”);
GetIEVersion();

您可以尝试参考下面的代码示例,它可以识别IE7、IE8、IE9、IE10、IE11版本


页面标题
函数GetIEVersion(){
var sAgent=window.navigator.userAgent;
var Idx=sAgent.indexOf(“MSIE”);
//如果是IE,返回版本号。
如果(Idx>0)
返回parseInt(sAgent.substring(Idx+5,sAgent.indexOf(“.”,Idx));
//如果是IE 11,则查找更新的用户代理字符串。
else if(!!navigator.userAgent.match(/Trident\/7\./))
返回11;
其他的
返回0;//它不是IE
}
如果(GetIEVersion()>0)
警报(“这是IE”+GetIEVersion());
其他的
警惕(“这不是IE”);
GetIEVersion();

是,除非用户在浏览器上禁用js,否则javascript将有权访问此信息。如果用户禁用js,大多数站点将无法正常工作。还有一些关于检测IE11的问题,比如这一个只是旁注:你有没有考虑过用检测来代替平台检测?你需要区分IE11的兼容模式吗?例如,如果IE11处于IE8兼容模式,您希望如何检测它?如果IE<11,我需要显示“不支持浏览器”消息。并且不呈现/显示页面的其余部分。所以是的,即使在IE<11的兼容模式下,我也应该显示这条消息是的,javascript将有权访问这条信息,除非用户在浏览器上禁用js。如果用户禁用js,大多数站点将无法正常工作。还有一些关于检测IE11的问题,比如这一个只是旁注:你有没有考虑过用检测来代替平台检测?你需要区分IE11的兼容模式吗?例如,如果IE11处于IE8兼容模式,您希望如何检测它?如果IE<11,我需要显示“不支持浏览器”消息。并且不呈现/显示页面的其余部分。所以是的,即使在IE<11的兼容模式下,我也应该显示此消息