- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在开发 WebCenter Spaces 应用程序并在跨浏览器测试过程中观察到一些奇怪的行为:
当使用 Internet Explorer 8 访问站点时,Spaces 很可能会插入此元标记:
<meta http-equiv="X-UA-Compatible" content="IE=8.0">
当使用 Internet Explorer 9 访问它时,兼容性 View 已启用,但是,添加了以下标记:
<meta http-equiv="X-UA-Compatible" content="IE=7.0">
这强制实际使用了兼容性 View 。雪上加霜的是,会弹出一个警告对话框,通知用户必须禁用兼容性 View 才能使用该应用程序。
禁用兼容性 View 时,Spaces 会发送一个在这种情况下完全不执行任何操作的标记:
<meta http-equiv="X-UA-Compatible" content="IE=9.0">
为什么这个标签不按一般原则发送到 IE9?这将禁用兼容模式并正确呈现页面,或者不正确?如何自定义 WebCenter Spaces 以正确支持 IE9?
版本信息:目前使用 WebCenter 11.1.1.6,但我们将迁移到 11.1.1.5(不要问)- 我正在 Windows Server 2008 R2 Standard x64 上使用 IE9 进行测试。
最佳答案
很遗憾,ADF 确实在 User-Agent header 中基于 MSIE
属性添加了 X-UA-Compatible
标签。据我所知,覆盖此行为的唯一方法是使用 servlet 过滤器。其中,您可以通过 User-Agent 中的 Trident
属性确定 IE 引擎版本,并设置适当的 X-UA-Compatible
标签。我们成功地将以下代码用于 servlet 过滤器:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest httpReq = (HttpServletRequest)request;
String ua = httpReq.getHeader("User-Agent");
Pattern patternEngineIE = Pattern.compile(".*Trident/(\\d).*");
Matcher mEngineIE = patternEngineIE.matcher(ua);
if (mEngineIE.find()) {
int versionEngineIE = Integer.parseInt(mEngineIE.group(1));
switch (versionEngineIE) {
case 4:
ua = ua.replaceAll("MSIE 7.0", "MSIE 8.0");
response.addHeader("X-UA-Compatible", "IE=8");
break;
case 5:
ua = ua.replaceAll("MSIE 7.0", "MSIE 9.0");
response.addHeader("X-UA-Compatible", "IE=9");
break;
case 6:
ua = ua.replaceAll("MSIE 7.0", "MSIE 10.0");
response.addHeader("X-UA-Compatible", "IE=10");
break;
}
}
httpReq.addHeader("User-Agent", ua);
filterChain.doFilter(httpReq, response);
}
因此,我们通过Trident
属性来判断IE的版本,IE8为4,IE9为5,兼容模式也是如此。但在兼容模式下IE8和IE9添加了MSIE 7.0
属性,我们根据引擎版本将其替换为MSIE 8.0
或MSIE 9.0
。
关于java - Oracle Webcenter Spaces 和 Internet Explorer 9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12106365/
我需要创建一个内容演示者模板并将其集成到 webcenter 中。但我是这项技术的新手。任何人都可以提供任何引用,我可以从哪里学习这些东西,任何分步教程。任何信息都会非常有帮助。 最佳答案 除了彼得提
如何更改 WebCenter Sites 中的样式表?我已经通读了 Oracle 的文档,但我仍然不确定它位于何处(原始开发人员离开了)。 我也开始着手转换我们公司产品组合中的其他网站,但我不确定将
我正在尝试为基于 portlet 的 Web 应用程序生成自定义 map ,就我目前所见,谷歌地图提供了一个 i 框架,它需要一些坐标并将它们绘制在 map 上。我想根据我存储的一些变量来执行此操作,
早上好, 我正在关注以下链接中的文档:http://docs.oracle.com/cd/E29542_01/doc.1111/e29634/wemregisteringapp.htm 我已成功启动应
Oracle Webcenter 内容中的管理 Java 小程序 WCC 无法打开。 错误:应用程序被安全阻止。 我知道它的java版本问题。安装的 Java 版本是 Java 8 update 20
我正在开发 WebCenter Spaces 应用程序并在跨浏览器测试过程中观察到一些奇怪的行为: 当使用 Internet Explorer 8 访问站点时,Spaces 很可能会插入此元标记:
我是 Oracle WebCenter Sites 平台的新手,我正在逐步遵循此链接中的文档:http://docs.oracle.com/cd/E29542_01/doc.1111/e29634/w
我是一名优秀的程序员,十分优秀!