我有一个运行在Tomcat上的java web应用程序,它在Internet 8中工作,并通过将用户代理字符串设置为IE8模式在Internet 10中工作。此web应用程序主要通过IE10模式通过content="IE=10"在Internet 11中工作。由于IE11仿真问题,web应用程序在IE8模式下无法在IE11中工作。IE11的边缘模式不起作用。在这个阶段,IE10模式是唯一可行的选择。
我正在寻找一种方法来为IE10设置浏览器模式以模仿IE8,并在没有有条件的注释的情况下将IE11设置为模仿IE10。
我们在Windows7上有IE8、IE10和IE11的用户。IE10是目前使用的主流浏览器。我们“很快”就要搬到IE11了。不能使用其他浏览器。用户没有选择IE版本,他们将随着时间的推移升级到IE11。
要回答“为什么为IE10设置IE=8模式而为IE11设置IE=10模式?”:
可以修复一些web应用程序代码,以便IE11在IE=10模式下工作。IE11对IE8的仿真中断到不值得尝试修复的地步。供应商不支持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" />IE10和IE11不再支持条件注释。 --这意味着以下代码不能工作。它导致IE11具有边缘的文档模式。
<!--[if IE 11]>
<meta http-equiv="X-UA-Compatible" content="IE=10" />
<![endif]-->content="IE=8, IE=10"设置适用于IE11,但不适用于IE10。
发布于 2015-03-23 05:45:01
使用速度,可以通过抓取用户代理,然后根据用户代理字符串设置模式,为Internet 10和Internet 11设置不同的用户代理。这对于10现在是有效的。
#if ( $req.getHeader("User-Agent").matches('.*Trident.6.0.*') )
<meta http-equiv="X-UA-Compatible" content="IE=8" />
#else
<meta http-equiv="X-UA-Compatible" content="IE=10" />
#endhttps://stackoverflow.com/questions/28733095
复制相似问题