jsp函数在IE中工作但不是chrome或firefox

时间:2015-04-22 17:40:19

标签: google-chrome internet-explorer jsf firefox richfaces

以下代码是处理用户可以解除的命令时出现的对话框。它适用于IE,但Chrome和Firefox不允许它在运行后被解雇。

<a4j:status id="statusWaitInt" forceId="true"
            onstart="javascript:Richfaces.showModalPanel('waitModalPanel2');"
            onstop="javascript:Richfaces.hideModalPanel('waitModalPanel2');">
    </a4j:status>
    <rich:modalPanel id="waitModalPanel2" autosized="true" width="200" height="50" resizeable="false">
            <f:facet name="header">
                <h:panelGrid columns="2" width="100%">
                    <h:outputText value="IWS Processing..." styleClass="textLabel"/>            
                    <h:graphicImage value="/images/close.jpg" style="cursor:pointer;float:right;" onclick="Richfaces.hideModalPanel('waitModalPanel2')" />
                </h:panelGrid>
            </f:facet>
             <h:panelGrid style="margin:auto">
                <rich:spacer height="5px"/>
               <h:graphicImage  value="/images/ajax-loader1.gif"/>
            </h:panelGrid>
    </rich:modalPanel>

以下是从中生成的html:

    </head><span id="waitStatus"><span id="waitStatus.start" style="display: none"></span><script type="text/javascript">
    window.document.getElementById('waitStatus.start').onstart=function(){javascript:Richfaces.showModalPanel('waitModalPanel');;};
</script><span id="waitStatus.stop"></span><script type="text/javascript">
    window.document.getElementById('waitStatus.stop').onstop=function(){javascript:Richfaces.hideModalPanel('waitModalPanel');;};
</script></span><div id="pbG182563ee_2d855a_2d4d65_2d8443_2d55f7fefd57c7:_viewRoot:j_id0:waitModalPanel" style="display: none;"><input autocomplete="off" id="pbG182563ee_2d855a_2d4d65_2d8443_2d55f7fefd57c7:_viewRoot:j_id0:waitModalPanelOpenedState" name="pbG182563ee_2d855a_2d4d65_2d8443_2d55f7fefd57c7:_viewRoot:j_id0:waitModalPanelOpenedState" type="hidden" /><div class="rich-modalpanel " id="pbG182563ee_2d855a_2d4d65_2d8443_2d55f7fefd57c7:_viewRoot:j_id0:waitModalPanelContainer" style="position: absolute; display: none; z-index: 100; background-color: inherit;"><div class="rich-mpnl-mask-div-opaque rich-mpnl-mask-div" id="pbG182563ee_2d855a_2d4d65_2d8443_2d55f7fefd57c7:_viewRoot:j_id0:waitModalPanelDiv" style="z-index: -1;"><button class="rich-mpnl-button" id="pbG182563ee_2d855a_2d4d65_2d8443_2d55f7fefd57c7:_viewRoot:j_id0:waitModalPanelFirstHref"></button></div><div class="rich-mpnl-panel"><div class="rich-mp-container" id="pbG182563ee_2d855a_2d4d65_2d8443_2d55f7fefd57c7:_viewRoot:j_id0:waitModalPanelCDiv" style="position: absolute; left: 0px; top: 0px; z-index: 9;"><div class="rich-mpnl-shadow" id="pbG182563ee_2d855a_2d4d65_2d8443_2d55f7fefd57c7:_viewRoot:j_id0:waitModalPanelShadowDiv"></div><div class=" rich-mpnl-content" id="pbG182563ee_2d855a_2d4d65_2d8443_2d55f7fefd57c7:_viewRoot:j_id0:waitModalPanelContentDiv"><table border="0" cellpadding="0" cellspacing="0" class="rich-mp-content-table" id="pbG182563ee_2d855a_2d4d65_2d8443_2d55f7fefd57c7:_viewRoot:j_id0:waitModalPanelContentTable" style="width: 200px;height: 50px;"><tr style="height: 1%;"><td class="rich-mpnl-header-cell"><div class="rich-mpnl-text rich-mpnl-header " id="pbG182563ee_2d855a_2d4d65_2d8443_2d55f7fefd57c7:_viewRoot:j_id0:waitModalPanelHeader" style="white-space: nowrap;"><table width="100%">
<tbody>
<tr>
    <td><span class="textLabel">IWS Processing...</span></td>
<td><img src="/iws-vault/images/close.jpg" onclick="Richfaces.hideModalPanel('waitModalPanel');" style="cursor:pointer;float:right;" /></td>

1 个答案:

答案 0 :(得分:0)

弹出式面板的经验法则是它们应放在<h:form/>之外,它们将被触发。然后,弹出式面板可以包含自己的<h:form/>

为了解决您的具体问题,richfaces 3.x为富人提供了特殊的让步:modalPanel,可以在IE中使用。来自the doc

  

为了避免IE中的错误,对话框的根节点移动到DOM树的顶部。

你应该也知道,根据Brian Leathem(Richfaces Lead)RF 3.x is compatible only with IE <= 8