【发布时间】:2015-12-02 20:54:15
【问题描述】:
我正在使用 IE11。如果浏览器是 IE11,我必须强制浏览器充当 IE 10。 由于 Microsoft 取消了对 Conditional Comments 的支持,我正在努力寻找一种方法。 我用 JavaScript 试过了,
<script language="JavaScript">
function setVersion() {
if (getInternetExplorerVersion() === 11) {
debugger;
$('head').append('<meta http-equiv="X-UA-Compatible" content="IE=10" />');
}
}
//Method to get the IE version
function getInternetExplorerVersion() {
var rv = -1;
if (navigator.appName == 'Microsoft Internet Explorer') {
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat(RegExp.$1);
}
else if (navigator.appName == 'Netscape') {
var ua = navigator.userAgent;
var re = new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat(RegExp.$1);
}
return rv;
}
</script>
现在因为 getVersion 在加载页面后被调用,所以这段代码没有任何效果。 还有其他方法吗?
【问题讨论】:
-
正如您已经发现的那样,javascript 更改渲染模式为时已晚。您可能必须在服务器端执行此操作(因为我没有解决方案),或者您只是在每种情况下都提供具有 IE=10 的 X-UA-Compatible?
-
其实我之前就是这么做的。但是不同页面的a部分无法在IE10中显示垂直滚动。那部分太复杂了。我只是发布了这部分,因为它不会造成任何麻烦
-
虽然我正在尝试另一种方式@Allanon
标签: javascript html internet-explorer meta-tags conditional-comments