Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关闭servlet中的弹出窗口并刷新父窗口_Javascript_Servlets - Fatal编程技术网

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

Javascript 关闭servlet中的弹出窗口并刷新父窗口,javascript,servlets,Javascript,Servlets,我正在使用servlet创建一个web应用程序,它使用Facebook进行身份验证。所以,每当用户按下登录按钮时,我就会打开一个新的弹出窗口,用户在其中输入Facebook登录凭据,然后将其重定向到servlet。在servlet中,我提取登录用户的信息并创建会话。创建会话后,我希望关闭此弹出窗口,并将父窗口刷新到其他位置。要打开弹出窗口,我使用以下脚本 function popitup(url) { newwindow=window.open(url,'name','height=20

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

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

我想模仿Facebook like box在您单击like而未登录时使用的相同机制。

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

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

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

函数closeWin(){
window.close();
}

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

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


函数refreshParent(){
window.opener.location.href=window.opener.location.href;
window.close();
}
这将刷新父项并关闭弹出窗口


别忘了,这段代码应该在弹出窗口中,并且只有在弹出窗口中完成所有工作后才调用,这实际上不是servlet问题。这是Javascript的基本用法这是我用来打开弹出窗口加载servlet的代码。现在我想从servlet关闭这个弹出窗口。您将从客户端关闭弹出窗口。servlet与此无关。servlet只输出html代码我已经在弹出窗口中加载了一个servlet现在servlet完成了它的工作之后我想关闭弹出窗口并刷新父窗口。我怎么做?我不想在按下按钮时关闭窗口,而是应该自动完成。我如何从servlet中调用此函数?可以在popup onload()上调用它,也可以从弹出窗口上的按钮调用它,也可以从servlet之外的任何位置调用它。正如我之前告诉过你的,servlet输出html代码。没有别的了!浏览器的工作是解释html代码、呈现页面和运行任何javascript函数
<script language="JavaScript">

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

</script>