如何关闭弹出窗口并重定向到 Django 视图中的另一个页面?

Posted

技术标签:

【中文标题】如何关闭弹出窗口并重定向到 Django 视图中的另一个页面?【英文标题】:How can I close a popup and redirect to another page in a Django View? 【发布时间】:2013-02-08 22:35:14 【问题描述】:

我有一个处理表单的弹出窗口。单击按钮后,我需要关闭弹出窗口并返回主页面。 如何在我的 Django 视图中执行这两个操作?

def InsertPopup (request):  
    if request.method == 'POST':  
        form = CustomerForm(request.POST)  
            if form.is_valid():  
               form.save(True)  
               return HttpResponse('<script type="text/javascript">window.close()</script>')  

此代码工作正常,但在“window.close”脚本之后,我想将焦点重定向/重新回到主页上,该主页应显示更新的数据。 非常感谢您的帮助。

【问题讨论】:

【参考方案1】:

这并不是 Django 特有的。您可以在关闭弹窗后通过 JavaScript 设置位置。

window.opener.parent.location.href = "/";

【讨论】:

如果你停留在上面的例子中,直接在 window.close() 之后应该可以工作:return HttpResponse('&lt;script type="text/javascript"&gt;window.close(); window.parent.location.href = '/';&lt;/script&gt;'). 我收到一个语法错误:/: 'str' 和 'str' 的操作数类型不受支持。在弹出窗口上提交表单后,我收到此错误。错误是指脚本所在的行。知道如何解决吗? 我把评论中的引号弄乱了,最后一个参数应该使用双引号:return HttpResponse('&lt;script type="text/javascript"&gt;window.close(); window.parent.location.href = "/";&lt;/script&gt;') 现在我没有收到任何错误,表单已提交,数据已保存,弹出窗口正常关闭但主页未重新加载。也许我错过了弹出表单上的提交按钮上的任何内容? 自从我上次使用弹出窗口已经有一段时间了,您可能需要设置window.opener.parent.location.href。我已经更新了我的答案以反映这一点。从您的问题中也有点难以分辨的是您如何首先创建弹出窗口,这可能会影响它的行为方式。

以上是关于如何关闭弹出窗口并重定向到 Django 视图中的另一个页面?的主要内容,如果未能解决你的问题,请参考以下文章

单击按钮时弹出关闭并重定向到不同的页面!

如何使按钮单击更新数据库并重定向到 Django 中的视图?

passport.js ,在弹出窗口中进行身份验证后,将其关闭并重定向父窗口

如何关闭弹出窗口并将 url 重定向到父页面?

如何在我的应用程序中打开窗口并重定向到谷歌播放中的另一个应用程序下载页面

如何告诉父母弹出当前模式并重定向到 NavigationPage