IE11改变了JSF重新渲染的DOM结构

Dav*_*veB 9 richfaces facelets ajax4jsf jsf-1.2 internet-explorer-11

这里有点奇怪的,我没有看到任何其他的报告,我们最近报告了IE11用户的一些UI错误,经过一些测试我意识到在执行reRender(我使用的是A4J)之后,IE11正在放置HTML错误的地方,例如.

<s:div id="parent" rendered="#{someCondition}">
    <div id="brother"></div>
    <div id="sister"></div>
</s:div>
Run Code Online (Sandbox Code Playgroud)

在重新渲染之后看起来像这样

<s:div id="parent" rendered="#{someCondition}">
    <div id="brother">
        <div id="sister"></div>
    </div>
</s:div>
Run Code Online (Sandbox Code Playgroud)

这显然是对布局造成严重破坏

我混合JSF/HTML组件相当多,但不认为这应该导致问题?

可能导致这种情况的任何想法?

JSF 1.2 | RichFaces 3.3 | Facelets的

Lev*_*ite 6

您是否尝试为IE8渲染模式设置元标记:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
Run Code Online (Sandbox Code Playgroud)

正如我所听到的,RichFaces 3仅支持Internet Explorer 8,或者您可以考虑切换到RichFaces 4以获得当前的浏览器支持.

微软:如何确保兼容性

希望这可以帮助.

  • 刚刚尝试了它,它至少在一个特殊情况下起作用,谢谢!事实上,`<META HTTP-当量= "X-UA兼容" 内容= "IE = EmulateIE10"/>在这种情况下,'足够如果你不想失去新的CSS功能.(我确信之前我尝试过"X-UA-Compatible"并且它没有用 - 也许我当时遇到了错误.) (2认同)
  • 我可以确认,`<meta http-equiv ="X-UA-Compatible"content ="IE = EmulateIE10"/>`解决了IE11和Richfaces 3.3.3的问题. (2认同)