相关疑难解决方法(0)

在JavaScript中检测IE版本(v9之前)

如果他们使用的是Internet Explorerv9之前的版本,我想将我们网站的用户反弹到错误页面.我们的时间和金钱都不值得支持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
    }
}
Run Code Online (Sandbox Code Playgroud)

这个代码会起作用吗?

关闭一些可能会出现的评论:

  1. 是的,我知道用户可以伪造他们的useragent字符串.我并不担心.
  2. 是的,我知道编程专家更喜欢嗅出功能支持而不是浏览器类型,但我觉得这种方法在这种情况下没有意义.我已经知道所有(相关的)非IE浏览器都支持我需要的功能,并且所有pre-v9 IE浏览器都不支持.在整个站点中按功能检查功能将是一种浪费.
  3. 是的,我知道有人试图使用IE v1(或> = 20)访问该网站不会将'badBrowser'设置为true,并且警告页面将无法正确显示.这是我们愿意承担的风险.
  4. 是的,我知道微软有"条件评论",可以用于精确的浏览器版本检测.IE不再支持条件注释IE 10,使得这种方法绝对无用.

还有其他明显的问题需要注意吗?

javascript internet-explorer user-agent browser-detection

246
推荐指数
14
解决办法
38万
查看次数