GWT运行时UserAgent和编译时UserAgent不匹配

时间:2012-08-28 16:11:14

标签: java gwt user-agent gwtp

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

这里我包括显示弹出窗口的屏幕截图,任何帮助摆脱它将不胜感激。 enter image description here

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

以下是gwt.xml

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

下面是显示异常的GWT Dev Log,用户代理'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有一个谷歌Chrome Frame插件,但由于它是公司默认设置,它将是我的最后手段。

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

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

第二次尝试设置GWT来编译ie8和safari,再次将此错误添加到AddEventListener方法

最后一次尝试是使用Chrome框架并设置

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

让IE浏览器使用Chrome浏览器框架处理网页使用chrome的引擎而不是IE引擎,这对我来说没什么用,同样的故事。

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

1 个答案:

答案 0 :(得分:2)

GWT认为您的IE8是 safari ,您可能安装了Google Chrome Frame,并且您的网页或服务器会发送the appropriate bits来激活它。

所以,要么:

  • 确保您的网页/服务器不会尝试在客户端启用Chrome Frame
  • 编译ie8 safari(2个排列):<set-property name="user.agent" value="ie8,safari" />
  • 卸载Chrome Frame
  • 或者只是为了在开发/测试您的应用时加快迭代速度,只编译safari排列