0

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

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

我想模仿 Facebook 点赞框在您点击赞但未登录时使用的相同机制。

4

2 回答 2

0

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

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

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

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

于 2012-07-14T04:56:39.663 回答
0

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

<script language="JavaScript">

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

</script>

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

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

于 2012-07-14T05:04:09.163 回答