GWTBootstrap3 组件在 IE11 中呈现不正确

GWTBootstrap3 components rendering incorrectly in IE11

我的页面元素在所有浏览器中应该显示如下:

我只能在 IE11 中通过在页面加载期间打开开发工具来实现此目的,否则页面将生成如下内容:

总结

此问题仅存在于 IE11 中,该站点可在 chrome、firefox 甚至 Safari 中运行,无需任何额外的管道。我在 SO 上找到了一些 IE 修复程序,但到目前为止 none 已经奏效:

*.html - 添加元信息以使用Edge引擎

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<html>
  <head>
    <!--[if IE]>
        <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
    <![endif]-->

    ... html continues with rest of head

*.js - 防止未定义的控制台阻塞处理

 if(!window.console) {
            console.log(item);
        }

我已经确定在重新加载页面进行测试时使用 Ctrl F5,并且还重新启动了 devmode 以查看是否有所不同。通过查看兼容性设置,我还确认该站点未 运行 处于兼容模式。

查看日志我可以看到,当页面在开发工具关闭的情况下加载时,绑定是使用 user.agent=ie8 执行的,而开发工具是打开的,绑定 属性 是 user.agent=gecko1_8我认为 IE11 应该始终使用 gecko1_8 排列 - 为什么这不会发生?

(使用 GWT 2.7 版)

不确定这是否有帮助。 我们正在使用 GWT(2.8,但我认为它过去也适用于 2.7)。 使用 GWT-Bootstrap3 (https://github.com/gwtbootstrap3/gwtbootstrap3) 在 IE11 中没有任何问题。我不确定您使用的是同一个 bootstrap 库吗?​​

总之。我们在 html 文件中添加了以下行(作为 head 标记的第一行):

<meta http-equiv="x-ua-compatible" content="IE=10">

我真的不记得我是怎么想出这一行的,但是版本历史表明:"It is now possible to use IE11 in compatibility mode"

因此它必须使用 GWT 和 bootstrap3 修复 IE-11 中的某些内容:-)