1

我最近将 gwt.xml 脚本更改为仅编译 1 个排列(仅限 ie8),这解决了我以前的问题,但是出现了一个外观问题,即每次使用 IE8 打开我的 GWT 页面时都会出现一个烦人的弹出窗口

在这里,我包括显示弹出窗口的屏幕截图,任何摆脱它的帮助将不胜感激。 在此处输入图像描述

更新:按照 Thomas 的建议,我可以通过为 ie8 和 safari 编译来消除该消息。但是从那时起,我只能在 IE9 文档模式下使用 IE9 打开网页,而不是使用 IE8 模式,我的用户正在使用 IE8

下面是 gwt.xml 的代码片段

    <set-property name="user.agent" value="ie8"/>
<extend-property name="user.agent" values="safari" />

下面是显示异常的 GWT 开发日志,用户代理“Mozilla/4.0”确实让我感到困惑,因为我确实安装了 Firefox 14.0.1。

 11:12:17.143 [ERROR] [dca] Failed to load module 'dca' from user agent 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; MS-RTC LM 8)' at 127.0.0.1:51883

我还发现有一个适用于 IE 的 Google Chrome Frame 插件,但是由于它是公司默认设置,所以这将是我最后的选择。

好的,这是我的最后更新,在默认的 GWT 覆盖 6 排列中包括 IE8,但是我的 IE 有 Chromn Frame,它将我的浏览器屏蔽为 safari,IE8 和旧版浏览器不支持“AddEventListener”方法,这是大多数 GWT 小部件所依赖的。因此,我的 IE8 浏览器的 gwt 使用 safari 实现会在网页初始化时出错,说对象不支持 AddEventListener 方法。

我的第一次尝试是将 GWT 设置为只为 ie8 编译,但是这会生成上面显示的烦人的弹出窗口,

第二次尝试将 GWT 设置为同时编译 ie8 和 safari,这也是 AddEventListener 方法上的错误

最后一次尝试是利用 Chrome Frame 并设置

     <meta equiv="X-UA-Compatible" content="chrome=1"> 

这让带有 Chrome Frame 的 IE 浏览器使用 chrome 的引擎而不是 IE 引擎来处理网页,这对我没有多大作用,同样的故事。

我的最终解决方案是让 GWT 将 6 排列作为默认编译并禁用 Chrome 框架,这是公司范围内的默认插件,但如果用户想要这个插件,那么他们应该真正获得实际的 chrome,让自然选择发挥它的魔力。

4

1 回答 1

2

GWT 认为您的 IE8 是一个safari,您可能安装了 Google Chrome Frame,并且您的页面或服务器发送适当的位来激活它。

所以,要么:

  • 确保您的页面/服务器不会尝试在客户端启用 Chrome Frame
  • 为 ie8safari 编译(2 个排列):<set-property name="user.agent" value="ie8,safari" />
  • 卸载 Chrome 框架
  • 或者如果只是为了在开发/测试你的应用程序时加快迭代,只编译safari排列
于 2012-08-28T16:18:03.590 回答