如何检查richface弹出面板是否可见

How to check whether the richface pop up panel is visible or not

在以下代码中:code1 onClick 函数会打开一个 RichFace 弹出面板。我需要在弹出窗口关闭后执行 onComplete 功能。我怎样才能延迟 onComplete 功能。有没有办法检查弹出窗口是否可见,如 code2 所示,以便延迟执行。

代码1:
<a onclick ="showPopup('popup1')" oncomplete="" > Input </a>

代码2:
<a onclick ="showPopup('popup1'); while(isVisible('popup1')){ }"
oncomplete="" > Input </a>

只需使用 rich:popupPanel 中的 onhide 属性。其描述为:弹窗消失后执行的客户端代码.

<h:commandButton value="Call the popup">
    <rich:componentControl target="popup" operation="show" />
</h:commandButton>

<rich:popupPanel id="popup" modal="true"
    onhide="alert('My popup is now hidden!')"
    onshow="alert('This popup just pop out!');">
    <!-- (... some body ...) -->
</rich:popupPanel>

如果你真的想检查 JavaScript 弹出窗口是否隐藏或可见,则使用 JavaScript 中的 RichFaces 对象,找到弹出窗口并检查 shown 字段.一个例子:

if (RichFaces.$('MyPopupId').shown) {alert('Shown')} else {alert('Hidden')}

查看 RichFaces VDL 了解更多信息。