Asp.net 使用window.open()打开多个弹出窗口。如何使所有弹出窗口保持在顶部并访问父页面
我有一个场景,我需要打开多个弹出窗口几乎5。如果我使用window.open方法,我可以打开多个弹出窗口,但它不会一直位于父页面的顶部。打开第一个弹出窗口后,它显示在父页面的顶部。然后,当我访问父页面打开第二个弹出窗口时,第一个弹出窗口位于父页面后面。是否有任何方法可以实现此功能Asp.net 使用window.open()打开多个弹出窗口。如何使所有弹出窗口保持在顶部并访问父页面,asp.net,popup,window.open,Asp.net,Popup,Window.open,我有一个场景,我需要打开多个弹出窗口几乎5。如果我使用window.open方法,我可以打开多个弹出窗口,但它不会一直位于父页面的顶部。打开第一个弹出窗口后,它显示在父页面的顶部。然后,当我访问父页面打开第二个弹出窗口时,第一个弹出窗口位于父页面后面。是否有任何方法可以实现此功能 一种方法是将窗口句柄存储在数组中,并调用focus方法。它在IE中工作,但在Chrome中不起作用 代码如下 var popupWindowsArr = new Array(); function popupClic
一种方法是将窗口句柄存储在数组中,并调用focus方法。它在IE中工作,但在Chrome中不起作用 代码如下
var popupWindowsArr = new Array();
function popupClicked() {
var title = "Test -" + popupWindowsArr.length;
var wndID = window.open("http://www.google.com", title, "height=400,width=700");
popupWindowsArr.push(wndID);
for(var i = 0; i < popupWindowsArr.length; i++) {
popupWindowsArr[i].focus();
}
}
编辑-在回发后将焦点转移到弹出窗口
一种方法是将打开的窗口的名称存储在一个隐藏字段中并使用它。仅当弹出url位于同一域中时,此操作才有效
<asp:HiddenField ID="hdnPopupNames" runat="server" />
function popupClicked() {
var popupNames = document.getElementById('<%=hdnPopupNames.ClientID %>').value;
var wndName;
if (popupNames.length > 0) {
var namesArr = popupNames.split("|");
wndName = "Test -" + namesArr.length;
for (var i = 0; i < namesArr.length; i++) {
var wnd = window.open("", namesArr[i]);
wnd.focus();
}
popupNames += "|" + wndName;
}
else {
wndName = "Test - 0" ;
popupNames = wndName;
}
window.open("TestHTMLPage.htm", wndName, "height=400,width=700");
document.getElementById('<%=hdnPopupNames.ClientID %>').value = popupNames;
}
谢谢你的回复。但是,当页面发回时,PopupUpindowsArr不会保留弹出窗口。因此,它总是会打开当前的弹出窗口,而不是全部是。这是非常有用的。我将尝试找到一种chrome的方法。因为我们的大多数用户都使用chrome。如果你发现什么,请告诉我。@Mey当然,我会看看我是否能找到什么。如果这个答案有帮助,请接受。