我在打开一个弹出窗口时所面对的。
<h:form>
<h:commandButton value="Submit" action="#{bean.submit}">
<f:ajax render="popup" />
</h:commandButton>
<h:panelGroup id="popup">
<ui:fragment rendered="#{not empty bean.url}">
<script>window.open('#{bean.url}');</script>
</ui:fragment>
</h:panelGroup>
</h:form>
我想在关闭这个弹出窗口时调用一个动作
其次,我需要改变这个弹出框的宽度和高度
我想在关闭这个弹出窗口时调用一个动作
给出一个close
按钮执行所需的操作并将用户重定向到一个页面,该页面意味着在javascript加载时关闭
其次,我需要改变这个弹出框的宽度和高度。
可以指定height
&width
in window.open()
我想在关闭这个弹出窗口时调用一个动作
这只有在最终用户从弹出框内部提交<h:form>
时才有可能。当最终用户按下X按钮或Ctrl+W或Alt+F4时,不能挂钩bean操作。这里有window.onbeforeunload
钩子,但是它不允许您可靠地向服务器端发送HTTP请求,而这是调用bean操作所必需的。
其次我需要改变这个弹出框的宽度和高度
可以通过向window.open
提供额外的参数来实现。参见文档:
window.open('#{bean.url}', 'yourwindowname', 'width=600,height=480');
我们使用onbeforeunload钩子从弹出窗口调用函数当我们弹出窗口
<script>
window.onbeforeunload = function() {
document.forms["showpdf"].elements["hiddenBtn"].click();
}
</script>
<h:body>
<f:view>
<h:form id="showpdf">
<iframe src="#{docProd.url}" width="100%" height="100%"> </iframe>
<div align="center"><p:commandButton id="hiddenBtn"
onclick="#{docProd.resetUrl}" style="display:none" /></div>
</h:form>
</f:view>
</h:body>
</ui:composition>