如何检查 p:dialog 是否打开?

How to check if p:dialog is open?

我使用

在我的网页上实现了一个弹出框
<p:dialog header="Value" widgetVar="confirmationCbxTxt" ..>

现在,我想检查当点击我页面上的按钮时这个弹出框是否打开。 我的按钮代码是

<p:commandButton value="#{label.close}" ajax="true" id="Close2" onclick="focuspopup();" />

使用 onclick 函数 "onclick="focuspopup();" 我想检查我的弹出框是否在屏幕上打开。任何人都可以建议这种方法。我正在考虑使用 jquery 在我的 focuspopup() 中测试打开的弹出窗口。

PrimeFaces.widget.Dialog 的客户端 API 包含三个方法,根据 PrimeFaces 5.2 User Guide(第 184 页):

  • show() 显示对话框。
  • 隐藏() 关闭对话框。
  • isVisible() Returns 作为布尔值的可见性。

使用最后一个满足要求。例如,将此添加到您的 focuspopup() 函数中:

var open = PF('confirmationCbxTxt').isVisible();

注意事项: 对于旧的 PrimeFaces 版本(5.1 及以下),isVisible() 不存在,因此您需要将其替换为

var open = PF('confirmationCbxTxt').jq.is(':visible');