【问题标题】:How to get past browser quirks and javascript issues in GWT/GXT?如何解决 GWT/GXT 中的浏览器怪癖和 javascript 问题?
【发布时间】:2014-08-27 18:30:49
【问题描述】:

几个月来,我一直在开发 GWT + GXT 应用程序。我在编码时使用带有 Firefox 的开发模式插件。 GWT 声称代表程序员处理浏览器怪癖,但是我一直遇到跨浏览器行为不同的问题。特别是在 IE 的兼容模式开启 v/s 关闭时。布局消失了;小部件大小(尤其是子菜单和下拉宽度)、位置等不一致。很多时候,我遇到 javascript 异常,这些异常在一个浏览器中间歇性地重现,而从未在其他浏览器上重现,而且我通过查看代码一无所知。然后有些情况会完全崩溃。一个例子是在另一个 FormPanel 中嵌入一个 FormPanel:在 Firefox 中运行良好,在 IE9 中导致 javascript 异常

我们之所以选择 GWT,是因为我们不想花时间与浏览器作斗争,但似乎我们被骗了!

有什么想法或想法吗?

更新:

我意识到 FormPanel 嵌套问题的出现是因为 IE 遵守 w3c 标准。但是,我的问题不是特别是 formpanel,而是我在不同的浏览器中得到不同的行为,即使 GWT 声称自己可以处理浏览器的怪癖。 我不断在不同的浏览器上遇到问题,这些问题不是我编写的 GWT/JAVA 代码的特征,而且由于运行时都是 javascript,我不知道如何调试它们以及如何将这些 Javascript 异常/错误转换为 Java 代码缺陷/案例

【问题讨论】:

  • 嵌套的form 元素反对spec。因此,如果并非所有浏览器都支持它,您就不能期望 GWT 能够在所有浏览器上运行。 Here 可能很有趣。
  • 没错,在这种情况下,IE 正在展示 w3c 标准,而其他浏览器则通过允许它来宽容它。但这是我觉得有问题的。 GWT 应该通过抛出异常来完全禁止它(除非他们可以让它在 IE 上以某种方式工作)。我的问题不是特别是 formpanel,而是事实上我在不同的浏览器中得到了不同的行为,即使 GWT 声称自己可以处理浏览器的怪癖
  • 我同意,它不应该被允许嵌套FormPanels。至少请随意发布此特定问题的错误报告。

标签: java gwt gxt


【解决方案1】:

在使用 GWT 时,永远不要让 IE 使用兼容模式。要始终强制浏览器使用最新支持的文档模式,请添加以下元标记:

<meta http-equiv="X-UA-Compatible" content="IE=edge">

作为替代方案,您也可以使用 http 标头进行设置。

【讨论】:

  • 遗憾的是,我的 GWT 应用程序嵌入在一个父应用程序中,它自己处理 html 元数据,我无法更改它。然而,问题不仅在于兼容模式。跨浏览器兼容性存在更大的问题。例如,我提到的 FormPanel 行为无论兼容模式如何都会发生,并且在 FF 中是平滑的。
  • GWT 和 GXT 可能掩盖了浏览器之间的差异,但这种所谓的“兼容模式”才是真正的诀窍。例如,伪装成 IE8 的 IE9 有完全不同于真正的 IE8 或 IE9 的错误和错误。好像仅仅发布 一个 新的有缺陷的浏览器是不够的,他们必须在这些模式下再安装两三个才能满足配额......
猜你喜欢
  • 2011-12-19
  • 2012-01-29
  • 1970-01-01
  • 2020-04-23
  • 2013-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多