Mic*_*aiz 5 internet-explorer xpages
正如我的问题标题已经告诉我有问题迫使IE8不使用兼容模式.
我在网上发现了两个来自Michael Gollmick的解决方案,它将此代码添加到beforeRenderResponse中:
if (context.getUserAgent().isIE()) {
    var response = facesContext.getExternalContext().getResponse();
    response.setHeader("X-UA-Compatible", "IE=8");
}
Run Code Online (Sandbox Code Playgroud)
此解决方案可以正常使用浏览器中的兼容模式按钮,并且页面看起来应该如此.乙
我不想将此代码添加到每个XPage,所以我尝试了Per Henrik Lausten的解决方案将MetaData添加到我的主题:
<resources>
  <metaData>
    <httpEquiv>X-UA-Compatible</httpEquiv>
    <content>IE=8</content>
  </metaData>
</resources>
Run Code Online (Sandbox Code Playgroud)
但似乎主题中的这个MetaData没有效果.在查看HTML源代码时,我在sourceCode的标题中找到了Meta标签,但IE8似乎只是忽略它.
<meta content="IE=8" http-equiv="X-UA-Compatible">
Run Code Online (Sandbox Code Playgroud)
那么如何从主题中获取MetaData呢?或maby任何其他自动解决方案将onRenderResponse代码添加到每个XPage.
您可以使用PhaseListener或主题执行此操作.使用主题时,您可以使用XPage中不需要的styleClass并计算值:
<control>
    <name>ViewRoot</name>
    <property>
        <name>styleClass</name>
        <value>#{javascript:
            var response = facesContext.getExternalContext().getResponse();
            response.setHeader("X-UA-Compatible", "IE=8");
        }</value> 
    </property>
</control>
Run Code Online (Sandbox Code Playgroud)
PhaseListener看起来像这样:
package ch.hasselba.xpages.jsf;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
import javax.servlet.http.HttpServletResponse;
public class IEPhaseListener implements PhaseListener {
    private static final long serialVersionUID = 1L;
    public void afterPhase(PhaseEvent event) {
    }
    public void beforePhase(PhaseEvent event) {
        HttpServletResponse response = (HttpServletResponse) event
                .getFacesContext().getExternalContext().getResponse();
        response.setHeader("X-UA-Compatible", "IE=8");
    }
    public PhaseId getPhaseId() {
        return PhaseId.RENDER_RESPONSE;
    }
}
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1899 次  |  
        
|   最近记录:  |