我正在尝试为我的应用程序打开一个新的弹出窗口。每个弹出窗口都有一个窗口名称。假设用户关闭弹出窗口,他可以打开同名的弹出窗口。但是应该显示现有的弹出窗口。
我写了下面的代码来做到这一点。但是,如果用户关闭它,则不会打开弹出窗口,否则会打开一个新的弹出窗口。请建议如何使用它。
d='javascript:if(document.getElementsByTagName("*").length>0&&document.getElementsByTagName("body")[0].innerHTML!=""&&!confirm("You are about to navigate to home page Do you want to do that ? "))
{opener.display2WindowHelp();}
else
{window.location.replace("${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}'+d+'");
}';
b= window.open(d,"_spor_window_"+a+window.location.hostname.replace(/\./g,""),"menubar=no,scrollbars=yes,height="+screen.availHeight+",width="+screen.availWidth+",left=0,top=0,resizable=yes,toolbar=no,location=no,status=no");
答案 0 :(得分:0)
如果您需要打开任何弹出窗口,可能有更好的方法来满足您的要求。如果您要打开几个弹出窗口,那么您的设计需要彻底检查(考虑您的工作流程以及选项卡式界面是否是更好的选择)。
通常的策略是保存对每个窗口的引用,然后检查它是否仍然打开并且可以在以后重新使用,例如
var popWin;
function openWindow(url) {
var windowName = '...';
var features = '...';
if (!popWin || popWin.closed) {
popWin = window.open(url, windowName, features);
} else {
popWin.location.href = url;
}
}
如果您想要打开多个窗口,那么您需要一个策略来跟踪您要将特定资源加载到哪个窗口。
您可能会发现HTML5 window(按名称创建和导航上下文)和MDN window.open文档非常有用。