Internet Explorer
如果他们使用的是 v9 之前的版本,我想将我们网站的用户退回到错误页面。只是不值得我们花时间和金钱来支持IE pre-v9
。所有其他非 IE 浏览器的用户都很好,不应被退回。这是建议的代码:
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
浏览器都不支持。在整个站点中逐个检查功能将是一种浪费。 - 是的,我知道有人试图使用
IE v1
(或> = 20)访问该站点不会将'badBrowser'设置为true,并且警告页面不会正确显示。这是我们愿意承担的风险。 - 是的,我知道微软有“条件注释”,可用于精确的浏览器版本检测。IE 不再支持条件注释
IE 10
,使这种方法完全没用。
还有其他明显的问题需要注意吗?