我正在使用JavaScript在asp.net中打开一个弹出窗口。我想要做的是当弹出窗口已经打开时,它只会将焦点设置在它上面并刷新弹出窗口而不是打开一个新的弹出窗口。否则,当它关闭时,弹出窗口必须打开的时间。
我尝试了以下代码,但没有工作..
var winPop = false;
function PopupCenter(pageURL, title,w,h)
{
if(winPop && !winPop.closed)
{
winPop.focus();
}
else
{
var left = (screen.width/2)-(w/2);
var top = (screen.height/2)-(h/2);
winPop = window.open(pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
winPop.focus();
}
}
提前致谢。
答案 0 :(得分:0)
您可以使用window.location.indexOf并使用它来检查该窗口是否已从其URL打开
根据你的代码的另一个解决方案是,当你的窗口要关闭时将该变量设为null,然后当它为null时检查该变量是否为null打开新窗口,否则设置焦点。
祝你好运!
- >父窗口中的代码 将整个代码放在父窗口中,如
var w = null;
然后设置变量,如w = window.open();
然后检查if(w!= null)然后打开新窗口,否则什么都不做
- >弹出窗口中的代码 并且还要小心在弹出窗口中设置w = null
$( window ).unload(function() {
w=null;
});
。