【问题标题】:Calling action from the popup从弹出窗口中调用操作
【发布时间】:2011-08-31 18:24:22
【问题描述】:

当我打开一个弹出窗口时,我正面临着。

<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>

我想在关闭此弹出窗口时调用一个动作

其次,我需要更改此弹出窗口的宽度和高度。

【问题讨论】:

    标签: java javascript jsf


    【解决方案1】:

    我想在关闭此弹出窗口时调用一个操作

    给一个close 按钮执行期望的操作并将用户重定向到一个旨在通过javascript 加载时关闭的页面

    其次,我需要更改此弹出窗口的宽度和高度。

    您可以在window.open() 中指定height & width

    【讨论】:

    • 任何代码都将不胜感激..我对java脚本了解不多
    • 你看到给出的链接了吗?
    • 应该有什么东西阻止了它
    【解决方案2】:

    我想在关闭此弹出窗口时调用一个操作

    这只有在最终用户从弹出窗口中提交&lt;h:form&gt; 时才有可能。当最终用户按下 X 按钮或 Ctrl+W 或 Alt+F4 时,您不能挂钩 bean 操作。有 window.onbeforeunload 钩子,但这不允许您可靠地向服务器端发送 HTTP 请求,而这是调用 bean 操作所必需的。


    其次,我需要更改此弹出窗口的宽度和高度。

    您可以通过向window.open 提供额外的参数来做到这一点。另见documentation

    window.open('#{bean.url}', 'yourwindowname', 'width=600,height=480');
    

    【讨论】:

    • 以上代码没有在 IE7 中打开弹出窗口。我们有办法解决吗
    • 那么你的 IE7 安装了弹出窗口拦截器。禁用它或使用 HTML/JS/CSS div-with-overlay 方法或使用第 3 方组件库,如 PrimeFaces/RichFaces,其中包含用于此目的的组件。
    • 我已经在使用 primefaces..但我不知道如何正确地做到这一点..我的弹出窗口被禁用
    • 阻塞问题与您最初询问的问题不同。您显然已经发布了一个不同的问题(这很好),请继续。
    【解决方案3】:

    当我们弹出窗口时,我们正在使用 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-23
      • 1970-01-01
      • 1970-01-01
      • 2021-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-28
      相关资源
      最近更新 更多