如何找到实际的IE浏览器版本,忽略它使用的文档模式?

时间:2014-11-26 09:09:16

标签: jsp internet-explorer user-agent ie8-compatibility-mode ie8-browser-mode

我们想要停止对IE8的支持,为了做到这一点,我们需要找到客户端正在使用的浏览器和版本(我们可以在客户端使用navigator.userAgent或在服务器端[jsp] ]使用客户端随请求发送的User-Agent标头。

问题是我们正在强制浏览器使用元数据<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8">使用IE8引擎(文档模式8)呈现页面,因此用户将像IE 8浏览器一样。

无论如何我们可以找到实际的IE版本,忽略文档模式(兼容模式)?

2 个答案:

答案 0 :(得分:1)

我想办法,我们可以通过找出Javascript解释器版本来实现:

var IE = (function () {
        "use strict";
        var ret, isTheBrowser, actualVersion, jscriptMap, jscriptVersion;

        isTheBrowser = false;
        jscriptMap = {"5.5": "5.5", "5.6": "6", "5.7": "7", "5.8": "8", "9": "9", "10": "10", "11": "11"};
        jscriptVersion = new Function("/*@cc_on return @_jscript_version; @*/")();

        if (jscriptVersion !== undefined) {
            isTheBrowser = true;
            actualVersion = jscriptMap[jscriptVersion];
            if (actualVersion === undefined) {
                actualVersion = jscriptVersion;
            }
        } 

        ret = {isTheBrowser: isTheBrowser, actualVersion: actualVersion};

        return ret;
    }());

答案 1 :(得分:0)

是的。我们可以找到使用JQuery或使用Java Script。

要在Java Script中查找,我们写道:

 function checkBrowserVersion() {

            var ua = window.navigator.userAgent;
            var ie = ua.indexOf("MSIE ");

            if (ie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))    
                alert(parseInt(ua.substring(ie + 5, ua.indexOf(".", ie))));
            else                 
                alert('Other Browser!!');
           return false;
         }

如果你想使用Jquery,我们可以简单地使用:

if ( $.browser.msie ) {
  alert( $.browser.version );
}

注意:如果您使用的是Jquery 1.9或更高版本,那么您还必须包含jquery-migrate插件。 快乐的编码!!!