模态窗口内的URL重定向

时间:2013-03-08 08:33:14

标签: javascript jsp redirect modal-dialog

我的webapp可以“单独”运行,也可以通过另一个webapp在模态窗口中打开......

当用户关闭窗口时,我必须清理一些数据,以便抓住关闭窗口的事件,然后重定向到这样的某个动作:

    <script language="JavaScript">
        window.onbeforeunload = function() {
            if ((window.event.clientX < 0) || (window.event.clientY < 0) || (window.event.clientX < -80) || window.event.altKey == true) { // close button or ALT+F4
                window.location.assign('<%=request.getContextPath()%>/borraSemaforo.do');
            }
        };
    </script>

当webapp在非模态窗口中运行但不在模态窗口内运行时,此方法有效。

我无法控制在模态窗口中打开我的应用程序,因此我无法对窗口的打开方式进行任何更改...

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

对于应用程序在模态窗口中加载的情况:

一种方法是:

您可以在onbeforeunload事件处理程序的窗口中创建隐藏的iframe。 在iframe中放置了动作的URL。

另一种方式 -

创建一个指向url路径的小模态窗口。在该url路径的响应中发送一个小的javascript来关闭模态窗口。

打开iframe的代码 - 基本js

    var i = document.createElement('iframe');
            i.style.display = "none";
            var d = new Date();
            i.id = d.getTime();
    i.onload = function(){
/*Task complete*/
 alert('frame loaded')}
            i.name = "exp" + d.getTime();
            i.src = window.location.protocol + "//" + window.location.host + '<path>';
            document.body.appendChild(i);