如果他们使用的是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,并且警告页面也无法正确显示。这是我们愿意承担的风险。 - 是的,我知道Microsoft具有可用于精确浏览器版本检测的“条件注释”。从IE开始,IE不再支持条件注释
IE 10
,从而使该方法绝对无用。
还有其他明显的问题要注意吗?