在页面加载时显示 Primefaces 的 OverlayPanel

Display Primefaces's OverlayPanel when the page loads

点击目标组件(commandButton)时,页面显示 Primefaces 的overlayPanel

<p:commandButton id="inputBtn" value="Choose a data source" type="button" action="#{dataImportBean.oAuth}"/>
 
<p:overlayPanel
 id="overlaypanel1"
 for="inputBtn"
 dynamic="false"
 widgetVar="inputChooser"
 >
// contents of the overlay panel
</p:overlayPanel>

我需要在页面加载时显示 overlayPanel,而不需要点击目标 commandButton

用例是:用户打开了 overlayPanel,但 oAuth 流程使用户离开了页面。当 oAuth 完成时,用户将被重定向到该页面。然而,overlayPanel 在页面加载时关闭,而我需要将用户直接带回 overlayPanel,以保持一致性。

在您的小部件 var 上使用客户端 API。您可以使用 show() 来显示面板,因此在您的情况下:PF('inputChooser').show().

要在页面加载时执行此操作,您可以将其放在 p:overlayPanel:

之后
<c:if test="#{yourCondition}">
<script>$(function() { PF('inputChooser').show() })</script>
</c:if>

另请参阅: