如何关闭弹窗并重定向页面

6

我的网站使用php,我创建了一个在线测验,并将其显示在弹出模式中。
目前,当我想要使用下面的脚本重定向页面时,它会跳转到我的主页,但仍处于弹出模式。我希望在点击“完成”后关闭弹出窗口并跳转到主页。

我该怎么做?

<script type="text/javascript">

window.parent.location = "../../../"

</script>
3个回答

10

通过在弹出窗口中使用 window.opener 属性,您可以访问打开该弹出窗口的窗口。 因此,以下类似的代码应该可以正常工作:

window.opener.location.replace(redirectUrl);
window.close;

如果你想将该行为放在你正在构建的提交按钮的 onclick 事件中,可以这样做:

假如你正在构建一个提交按钮,你可以将这个行为添加到该按钮的 onclick 事件中。

echo "<input type=\"submit\" 
       name=\"finishattempt\" 
       value=\"".get_string("finishattempt", "quiz")."\" 
       onclick=\"$onclick\" />\n";

在将提交按钮输出之前,您需要将字符串window.opener.location.href='someUrl';window.close();分配给变量$onclick


你可以把它放在任何你想要的地方 :) 如果你希望在点击某个按钮时触发该行为,就像JMax所说,你可以将其放入该按钮的onclick事件处理程序中。你能解释一下什么情况下需要关闭弹出窗口并重定向到打开页面吗? - Xavi López
我希望在点击提交按钮后,弹出窗口会关闭并跳转到主页。 - Kasim
那么,请按照JMax在他的答案中提出的方式去做 :) - Xavi López
要是我的按钮长这样,怎么样?echo "<input type="submit" name="finishattempt" value="".get_string("finishattempt", "quiz")."" onclick="$onclick" />\n"; - Kasim

2
您可以尝试使用以下代码(用于HTML按钮):

您可以尝试使用以下代码(用于HTML按钮):

<input type="button" onclick="parent.window.opener.location='http://homepage.com'; window.close();">

请查看一些类似的线程,比如这个:Javascript:关闭弹出窗口,打开新窗口和重定向

[编辑]还可以参考这篇文章


echo "<input type="submit" name="finishattempt" value="".get_string("finishattempt", "quiz")."" onclick="$onclick" />\n"; - Kasim

2
这样你就可以做到它了...
<script type="text/javascript">
function close_window(){
    window.opener.location = 'pop_up.php';
    window.close();
}
</script>

html code..

<body>
<form method="post" name="frm_2" id="frm_2">
    <input type="submit" name="btn_close" id="btn_close" onclick="return close_window();" />
</form>
</body>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接