检测 JavaScript 中的 IE 版本(v9 之前)
2022-08-30 00:32:25
我想将我们网站的用户退回到错误页面,如果他们使用的是 v9 之前的版本。只是不值得我们花时间和精力来支持。所有其他非IE浏览器的用户都很好,不应该被退回。以下是建议的代码:Internet Explorer
IE pre-v9
if(navigator.appName.indexOf("Internet Explorer")!=-1){ //yeah, he's using IE
var badBrowser=(
navigator.appVersion.indexOf("MSIE 9")==-1 && //v9 is ok
navigator.appVersion.indexOf("MSIE 1")==-1 //v10, 11, 12, etc. is fine too
);
if(badBrowser){
// navigate to error page
}
}
这段代码能解决问题吗?
为了阻止一些可能会出现在我面前的评论:
- 是的,我知道用户可以伪造他们的字符串。我不担心。
useragent
- 是的,我知道编程专业人士更喜欢嗅出功能支持而不是浏览器类型,但我觉得这种方法在这种情况下没有意义。我已经知道所有(相关的)非IE浏览器都支持我需要的功能,而所有浏览器都不支持。在整个站点中逐个检查功能将是一种浪费。
pre-v9 IE
- 是的,我知道有人试图使用(或>= 20)访问该网站,不会将“badBrowser”设置为true,并且警告页面将无法正确显示。这是我们愿意承担的风险。
IE v1
- 是的,我知道微软有“条件注释”,可用于精确的浏览器版本检测。IE 不再支持条件注释,使此方法绝对无用。
IE 10
还有其他需要注意的明显问题吗?