在弹出窗口打开时保持执行-javascript

时间:2018-11-16 09:01:26

标签: javascript

我试图从另一个Web应用程序(基于Java Servlet的Web应用程序)打开一个窗口(Spring Web应用程序)。 两者都部署在同一服务器上(例如JBoss)。

我的要求是在JavaScript函数中,我必须打开窗口,并且执行必须等待直到窗口关闭。这是因为一旦成功(或者如果用户关闭窗口),我将返回一些信息,并且进一步执行将继续执行此返回值。

//some statements...
var win = window.open("http://localhost/webapp/");

我正在尝试以下代码。但是弹出窗口正在等待while循环结束并且不显示页面。强制关闭窗口也无济于事。

while(!win.closed){}
//some statements...

我尝试过..

var windowOpened = true;
var timer = setInterval(function(){
if(win.closed){windowOpened = false; clearInterval(timer);}
}, 500);
while(windowOpened){}
//statements that need to run after window closed...

不使用...使用递归函数..仍然是同样的问题..

我可以拆分代码

var timer = setInterval(function(){
if(win.closed){
clearInterval(timer);
//statements that need to run after window closed...
}
}, 500);

但是我想知道是否有可能。 我正在扩展一个已经存在的过程,这样可以节省重复的代码。

预先感谢

1 个答案:

答案 0 :(得分:0)

父js代码

<script>
    var myexecution = 1;
    var callbackreceived = false;
    console.log(myexecution);
    //function to execute from child
    function myFunc() {
        callbackreceived = true;
        alert('Continue your process')
    }
    window.open("http://localhost:54954/child.html");       

</script>

儿童js ccode

    var RunParentFunction = function () {
        window.parent.myFunc();
    }; window.onbeforeunload = function () { RunParentFunction(); }

您可以使用parent.myFunc来调用