IE9

此文档已弃用:从 2.10.0 版本开始,GWT 不再支持 IE9!

需要牢记的事项

模式

在 IE9 中运行应用程序并不一定意味着您正在运行 IE9 标准模式。IE9 具有许多模式,可以在页面头部标签中定义(参见下面的“文档模式”部分)。您可以通过选择 F12 手动覆盖页面模式,在这里您可以设置浏览器模式和文档模式。

GWT IE 编译结果与每个版本的“标准”模式配合得最好。混合模式,比如浏览器模式 = 7 和文档模式 = 9,不建议使用,其行为是未定义的。为了简化操作,请尽量保持浏览器模式和文档模式相同。如果您必须使用混合模式,请注意您可能会遇到尚未得到支持的问题。例外情况是,如果您在尚不支持新版本时模拟旧浏览器,例如,您在 IE9 上模拟 IE7 (EmulateIE7)。

填写错误报告

由于存在许多“模式”,在填写错误报告时,请务必添加浏览器模式和文档模式,以及浏览器版本。这将有助于我们判断问题是 IE9 特定的、与旧版本相关还是与混合“模式”设置相关。

  • 要获取浏览器模式和文档模式,请选择“菜单 > 工具 > 开发者”
  • 要获取版本,请选择“帮助 > 关于 Internet Explorer”

文档模式

在发布应用程序的新版本之前,了解兼容模式的工作原理非常重要。如果您正在使用 X-UA-compatible 标签,请在旧浏览器上进行测试。

简而言之,只要有可能,请使用标准模式,方法是在您的 html 文件中将 <!DOCTYPE html> 作为第一个元素添加,并在 <head> 中添加 < meta http-equiv="X-UA-Compatible" content="IE=9">,以使您的应用程序面向未来。除非您确定自己正在做什么,否则请避免使用“edge”。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=9">
</head>
<body>
<script language='javascript'>
..

更多信息请参见:http://msdn.microsoft.com/en-us/library/cc288325%28v=vs.85%29.aspx

标准模式和潜在的硬件加速/性能问题

在某些情况下,IE9 将以软件渲染模式运行,并绕过任何硬件加速。在这些情况下,您可能会看到性能下降。要查看是否正在运行硬件加速环境,请选择“工具 > Internet 选项 > 高级选项卡”。

更多信息请参见:http://support.microsoft.com/kb/2398082

IE9 兼容视图和 Intranet 站点

默认情况下,所有 Intranet 站点都设置为在兼容模式下运行。要更改此设置,请转到“工具 > 兼容视图设置”并取消选中“在兼容视图中显示 Intranet 站点”。除添加到“已添加到兼容视图的网站列表”的网站外,Internet 站点默认情况下处于非兼容视图模式。

新的用户代理

已实现回退绑定,因此新的 user.agent 的引入不应导致构建中断。例如,IE9 使用 IE8 作为回退。如果您的应用程序对 IE8 有特定的绑定(例如自定义小部件),而这些绑定在 IE9 中未实现,编译器将自动使用 IE8 实现。编译期间会发出警告(见下文),建议您验证实现是否按预期在 IE9 中工作。

找不到完全匹配的规则。根据回退值使用“最近”规则 <replace-with class='com.google.gwt.widget.client.impl.MySuperDuperWidgetIE6'/>。如果回退行为无法替换丢失的绑定,您可能需要实现特定的绑定

这意味着您的应用程序的 IE9 编译结果将使用 MySuperDuperWidgetIE6。您的模块将 IE8 绑定到此实现,由于 IE9 没有显式绑定,它将回退到 IE8 使用的任何绑定(在本例中为基线 IE6 实现)。这里需要采取的行动是验证此实现是否按预期在 IE9 标准模式下工作。

发行说明和参考

发行说明

http://msdn.microsoft.com/en-us/ie/ff959805

http://msdn.microsoft.com/en-us/ie/ff468705

参考

http://msdn.microsoft.com/en-us/library/cc288325%28v=vs.85%29.aspx

http://support.microsoft.com/kb/2398082

http://support.microsoft.com/kb/2528233