【问题标题】:Opened multiple popup using window.open().How to make all popup stay at top and also access parent page使用 window.open() 打开多个弹出窗口。如何使所有弹出窗口保持在顶部并访问父页面
【发布时间】:2014-08-15 15:18:50
【问题描述】:

我有一个场景,我需要打开多个弹出窗口几乎 5 。如果我使用 window.open() 方法,我可以打开多个弹出窗口,但它不会一直停留在父页面的顶部。在我打开第一个弹出窗口后,它显示在父页面的顶部。然后当我访问父页面打开第二个弹出窗口时,第一个弹出窗口位于父页面后面。有什么办法可以实现这个功能。

非常感谢任何帮助

【问题讨论】:

    标签: asp.net popup window.open


    【解决方案1】:

    一种方法是将窗口句柄存储在一个数组中并调用焦点方法。它适用于 IE。它在 Chrome 中不起作用,详情here

    FIDDLE

    代码如下。

    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;            
    }
    

    【讨论】:

    • 感谢您的回复。但是popupWindowsArr在页面回发时没有保留弹出窗口。所以它总是打开当前的弹出窗口而不是全部
    • 是的。这是非常有用的。我将尝试为 chrome 找到一种方法。因为我们的大多数用户都使用 chrome。如果你发现了什么,请告诉我。
    • @Mey 当然,看看我能不能找到任何东西。如果这个答案有帮助,请采纳。
    猜你喜欢
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多