使用一些javascript我打开弹出窗口没有问题:
function myPopup2(x){
if (x==1)
{
myWindow = window.open( "timer.html", "", "height = 150, width = 300" );
}else
{
myWindow.close();
}
}
然后我运行一些PHP脚本,刷新重新加载页面。
当我稍后再关闭弹出窗口时 - 它没有,因为页面已经重新加载并且myWindow变量消失了。 'myWindow'未定义是javascript错误。
任何人都知道如何解决这个问题?
答案 0 :(得分:3)
如果在打开窗口时为窗口指定名称,则可以稍后获取窗口句柄。
function myPopup2(x){
if (x==1)
{
myWindow = window.open( "timer.html", "windowName", "height = 150, width = 300" );
}else
{
if (!myWindow) {
myWindow = window.open("", "windowName");
}
myWindow.close();
}
}
答案 1 :(得分:0)
如此处所述:http://www.faqts.com/knowledge_base/view.phtml/aid/1460
window.open()接受第二个参数,即窗口的名称。在刷新时,您可以检查该窗口的状态,并在必要时关闭它。正如链接中所讨论的那样,刷新后没有直接的方法来检查窗口,所以你必须做这样的事情:
var win = window.open ('', 'windowName')
然后以胜利运作。
(编辑:我最初有一个涉及cookie的第二个想法,但我认为这并不能真正为你节省任何东西,因为你仍然必须按照上述步骤访问窗口。)
答案 2 :(得分:0)
让子窗口每隔几秒执行一次函数,检查父窗口是否有标志,表示它应该关闭。父窗口可以在重新加载时设置标志,而不是试图追踪孩子。
答案 3 :(得分:-1)
我想你不能。导致子窗口(timer.html)在刷新后失去与父窗口的连接。如果你可以在另一个窗口中关闭每个窗口而两者之间没有任何参考,那将是非常可怕的。