我有一个在Tomcat上运行的java Web应用程序,它可以在Internet Explorer 8中运行,并且可以通过将用户代理字符串设置为IE8模式在Internet Explorer 10中运行 . 此Web应用程序主要通过 content="IE=10"
在IE10模式下在Internet Explorer 11中运行 . 由于IE11仿真问题,Web应用程序在IE8模式下无法在IE11中运行 . IE11的边缘模式不起作用 . IE10模式是此阶段唯一可行的选择 .
我正在寻找一种方法来设置IE10的浏览器模式来模拟IE8,并设置IE11以在没有conditional comments的情况下模拟IE10 .
我们在Windows 7上有IE8,IE10和IE11的用户.IE10目前是使用中的主流浏览器 . 我们正在“很快”转向IE11 . 没有其他浏览器可以使用 . 用户没有IE版本的选择,他们将随着时间的推移升级到IE11 .
要回答以下问题:“为什么为IE11设置 IE=8
模式,为IE11设置 IE=10
模式?”:
可以修复一些Web应用程序代码,以便IE11在 IE=10
模式下工作 . IE8的IE11仿真被打破到不值得尝试修复的程度 . 供应商不支持IE11 . 我能做的最好的事情是设置一个适用于大多数功能的仿真模式,并在可能的情况下修复其余功能 .
IE=8
是适用于IE8和IE10的UA模式 . 这需要保留,直到IE10不再使用 .
<meta http-equiv="X-UA-Compatible" content="IE=8" />
IE11中最有希望使用此应用程序的UA设置是 IE=10
. 这不能直接设置,因为它打破了IE10用户的应用程序 . 对于IE11,这是一个解决方案:
<meta http-equiv="X-UA-Compatible" content="IE=10" />
Conditional comments are no longer supported by IE10 and IE11.这意味着以下代码不起作用 . 这导致IE11具有Edge的文档模式 .
<!--[if IE 11]>
<meta http-equiv="X-UA-Compatible" content="IE=10" />
<![endif]-->
content="IE=8, IE=10"
的设置适用于IE11但不适用于IE10 .
1 回答
使用Velocity,可以通过抓取用户代理然后根据用户代理字符串设置模式,为Internet Explorer 10和Internet Explorer 11设置不同的用户代理 . 这适用于Internet Explorer 10 .