Javascript在关闭子窗口(弹出)后刷新主页


Javascript refresh main page after closing child window (popup)

我有3个php文件:view.php, edit.phpedit2.php

我使用view.php来显示我的DB表的内容,edit.php来编辑特定的行(我使用文本框等)和edit2.php来编写对我的数据库的任何更改。查询成功执行后,edit2.php使用header("Location: edit.php");再次显示所选行(我在edit.php中使用会话变量,并在view.php上取消设置它们)。

edit.phpedit2.php在一个小的弹出窗口中打开。现在我想要的是当我关闭我的小窗口时,view.php应该被刷新。

我尝试使用onunload,但它所做的是触发自己每次点击一个按钮在edit.php发送数据到edit2.php,所以当它返回到edit.php,它是空白的,因为会话变量由于view.php的刷新未设置。

我有一种奇怪的感觉,我可能用一种扭曲的方式解释了它……尽管如此,我还是需要一些帮助。

您要做的是使用window.open('edit.php')

打开一个新窗口

下面是window.open()

的文档

然后观察新窗口何时关闭,并在关闭时刷新页面。不幸的是,没有'on close'事件被触发,但有一个属性window.closed,你可以看到当窗口关闭。

所以你应该这样做:

var win = window.open('edit.php','Edit Row','width=800,height=600,status=0,toolbar=0');   
var timer = setInterval(function() {   
    if(win.closed) {  
        clearInterval(timer);  
        location.reload() 
    }  
}, 1000);