Jsp 如何找到实际的IE浏览器版本,而忽略它使用的文档模式?
我们想停止对IE8的支持,为了做到这一点,我们需要找到客户端正在使用的浏览器和版本(我们可以在客户端使用Jsp 如何找到实际的IE浏览器版本,而忽略它使用的文档模式?,jsp,internet-explorer,user-agent,ie8-compatibility-mode,ie8-browser-mode,Jsp,Internet Explorer,User Agent,Ie8 Compatibility Mode,Ie8 Browser Mode,我们想停止对IE8的支持,为了做到这一点,我们需要找到客户端正在使用的浏览器和版本(我们可以在客户端使用navigator.userAgent或在服务器端[jsp]使用客户端随请求发送的User Agent头来完成) 问题是,我们正在强制浏览器使用IE8引擎(文档模式8)使用元数据呈现页面:,因此用户的行为将类似于IE8浏览器 我们是否可以忽略文档模式(兼容性模式)找到实际的IE版本?是的。我们可以使用JQuery或Java脚本找到 要在Java脚本中查找,我们编写: function che
navigator.userAgent
或在服务器端[jsp]使用客户端随请求发送的User Agent
头来完成)
问题是,我们正在强制浏览器使用IE8引擎(文档模式8)使用元数据呈现页面:
,因此用户的行为将类似于IE8浏览器
我们是否可以忽略文档模式(兼容性模式)找到实际的IE版本?是的。我们可以使用JQuery或Java脚本找到 要在Java脚本中查找,我们编写:
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版或更高版本,则还必须包含插件。
快乐编码 我找到了一种方法,我们可以通过计算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;
}());
真正的IE 8用户位于支持条件注释的浏览器中;您是否考虑过使用条件注释来显示有限的支持消息?谢谢您的回答。事实上,我尝试了你的代码,但没有成功(可能是因为迁移插件-我没有尝试)。我找到了一个方法,我会把它贴出来。再次感谢。爱你救了我…-)