Как проверить, видна ли всплывающая панель richface или нет

В следующем коде: 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>

1 ответ

Решение

Просто используйте onhide атрибут из rich:popupPanel, Описание этого: клиентский код, выполняемый после исчезновения всплывающего окна.

<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, является ли всплывающее окно скрытым или видимым, используйте RichFaces объект в JavaScript, найти всплывающее окно и проверить shown поле. Пример:

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

Проверьте RichFaces VDL для получения дополнительной информации.

Другие вопросы по тегам