Javascript 关闭弹出窗口(如果存在)
使用一些javascript,我打开了一个无问题弹出窗口,使用:Javascript 关闭弹出窗口(如果存在),javascript,javascript-events,Javascript,Javascript Events,使用一些javascript,我打开了一个无问题弹出窗口,使用: function myPopup2(x){ if (x==1) { myWindow = window.open( "timer.html", "", "height = 150, width = 300" ); }else { myWindow.close(); } } 然后我运行一些PHP脚本,刷新并重新加载页面 当我稍后去关闭弹出窗口时,它不会关闭,因
function myPopup2(x){
if (x==1)
{
myWindow = window.open( "timer.html", "", "height = 150, width = 300" );
}else
{
myWindow.close();
}
}
然后我运行一些PHP脚本,刷新并重新加载页面
当我稍后去关闭弹出窗口时,它不会关闭,因为页面已经被重新加载,myWindow变量也消失了myWindow'未定义是javascript错误
有人知道我该怎么做吗 如下所述:
open()接受第二个参数,即窗口的名称。刷新时,您可以检查该窗口的状态,并在必要时关闭它。如链接中所述,刷新后无法直接检查窗口,因此您必须执行以下操作:
var win = window.open ('', 'windowName')
然后在win上进行操作
(编辑:我最初有一个关于cookies的第二个想法,但我认为这并不能真正为您节省任何东西,因为您仍然需要执行上述操作才能访问窗口。)我想您不能。导致子窗口(timer.html)在刷新父窗口后立即失去与父窗口的连接。如果你可以从另一个窗口中关闭每个窗口,而不在两者之间进行任何引用,那将非常可怕。如果你在打开窗口时给它起了一个名字,那么以后就有可能得到一个窗口的句柄
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();
}
}
让子窗口每隔几秒钟执行一个函数,检查父窗口是否有标志指示它应该关闭。父窗口可以在重新加载时设置标志,而不必试图跟踪子窗口。你只是抢先一步!。。不错。但是如果没有if语句,它也可以工作S myWindow=window.open(“,“windowName”);myWindow.close();没有",;不需要:if(!myWindow){bit当窗口未打开时,语句
window.open(“,”windowName”);
将显示一个空白窗口,而myWindow.close();
将其关闭。因此,您将看到一个打开和关闭的窗口,造成一种恼人的效果。有没有办法避免这种情况?