我的应用程序不兼容使用 IE8 浏览器。

我正在寻找一种方法来配置运行此应用程序的 Tomcat,以便 IE8 可以读取页面并像 IE7 或 IE6 一样处理页面

到目前为止,通过谷歌搜索,我发现了一个可能的建议,即添加到 http 响应标头:X-UA 兼容:IE=模拟IE7
这里

告诉 IE8 像 IE7 一样。

问题是这种方式需要添加一个应该在应用程序级别添加的过滤器。我想知道你们中是否有人熟悉 Tomcat 能够发送其 http 内容以兼容 IE7(或 IE6)的更通用的方式?

有帮助吗?

解决方案

Tomcat的是一个通用的网络服务器和servlet容器。这绝对是浏览器无关。因此,有没有办法对其进行配置,在一些特殊的方式来处理的IE。

您不必真的添加滤镜。最低限度是设置在“服务”的方法的响应报头的任何地方(或的doGet或doPost,任何应用程序使用):

res.addHeader( “X-UA兼容”, “IE = EmulateIE7”);

但是,这是在情况下,当有一个在服务器应用程序的单个入口点。否则,过滤器应该做的工作以更好的方式。

其他提示

  1. 下载 urlrewritefilter-4.0.3.jar 从 http://tuckey.org/urlrewrite/
  2. 将 urlrewritefilter-4.0.3.jar 添加到 WEB-INF/lib
  3. 将以下代码添加到 WEB-INF/web.xml
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
  1. 为模块创建一个新的配置文件。(WEB-INF/urlrewrite.xml)
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN" "http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">
<urlrewrite>
<rule><condition name="user-agent">.*MSIE.*</condition>
<set type="response-header" name="X-UA-Compatible">IE=EmulateIE7</set>
</rule>
</urlrewrite>

看这个论坛 线 讨论的情况与您所描述的情况完全相同。看来过滤器是最好的方法。正如上述线程的答案所示,您可以使用 网址重写过滤器.

此外,如果您使用 Apache Web Server 来代理 Tomcat,您可以轻松配置它以向响应添加任何标头。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top