关闭servlet中的弹出窗口并刷新父窗口

时间:2012-07-14 04:46:50

标签: javascript servlets

我正在使用servlet创建一个使用Facebook进行身份验证的Web应用程序。因此,每当用户按下登录按钮时,我打开一个新的弹出窗口,用户输入Facebook登录凭据,然后将其重定向到servlet。在servlet中,我提取登录用户的信息并创建会话。创建会话后,我希望关闭此弹出窗口,并将父窗口刷新到另一个位置。要打开弹出窗口,请使用以下脚本

function popitup(url) {
    newwindow=window.open(url,'name','height=200,width=150');
    if (window.focus) {newwindow.focus()}
return false;
}

我想模仿Facebook喜欢的盒子在你点击时使用的相同机制,但你还没有登录。

2 个答案:

答案 0 :(得分:0)

也许将此代码添加到您的servlet页面并通过单击按钮调用该函数?

<script language="javascript">
function closeWin() {
   window.close();
}
</script>

<input type="button" onclick="closeWin;" />

可能会出现安全弹出窗口警告您应用程序正在尝试关闭窗口并且您接受了。我知道避免这种情况的唯一方法是引用'opener',它是父窗口,可能会模糊弹出窗口,然后可能是onFocus(),它会调用一个函数来关闭子窗口。

答案 1 :(得分:0)

在弹出窗口中完成作业后,您应该调用refreshParent()

<script language="JavaScript">

function refreshParent() {
  window.opener.location.href = window.opener.location.href;
  window.close();
}

</script>

这将刷新父级以及关闭弹出窗口。

不要忘记此代码应该在弹出窗口中,并且只有在弹出窗口中完成所有作业后才会调用