【问题标题】:How to open multiple pop-up windows?如何打开多个弹出窗口?
【发布时间】:2019-11-16 14:55:48
【问题描述】:

我有五个链接,每个链接指向一个页面。

function TohokuImgPopup(url) { 
popupWindow = window.open(
                    url, 'popUpWindow'+randomno, 'height=246,width=228,left=0,top=0,resizable=no,scrollbars=no,toolbar=no,menubar=no,location=no,directories=no,status=no')
            }

这是我正在使用的功能。我对 5 个链接有不同的功能,每个链接都会打开一个新窗口。但我一次只能打开一个弹出窗口。如何打开多个弹出窗口?

【问题讨论】:

    标签: javascript popup popupwindow


    【解决方案1】:

    我找到了答案。

    <script type="text/javascript">
    
    $(document).ready(
    
    
    function a1(url) { 
    popupWindow1 = window.open(
                        url, 'popUpWindow1', 'height=250,width=234,left=0,top=0,resizable=no,scrollbars=no,toolbar=no,menubar=no,location=no,directories=no,status=no')
                }
    
                function a2(url) { 
    popupWindow2 = window.open(
                        url, 'popUpWindow2', 'height=250,width=234,left=0,top=0,resizable=no,scrollbars=no,toolbar=no,menubar=no,location=no,directories=no,status=no')
                }
    
                function a3(url) { 
    popupWindow3 = window.open(
                        url, 'popUpWindow3', 'height=308,width=299,left=0,top=0,resizable=no,scrollbars=no,toolbar=no,menubar=no,location=no,directories=no,status=no')
                }
                }
    </script>
    
    <a href="JavaScript:a1('images/focus_img1.html');">focus 1</a>
    <a href="JavaScript:a2('images/focus_img2.html');">focus 2</a>
    <a href="JavaScript:a3('images/focus_img3.html');">focus 3</a>
    

    这些链接将在单独的窗口中打开

    【讨论】:

    • 没有可扩展的解决方案。为每个链接硬编码一个功能不利于长期
    【解决方案2】:

    我知道这个问题已经很久没有提出来了,但我会回答,因为我在网上找不到任何可以明确回答问题的内容。一种简单的方法是使用带有 click() 事件的链接。

    $('body').on('click', 'a[data-popup]', function(e) {
      var date = new Date();
      var mSec = date.getTime();
      my_window = window.open($(this).attr('href'), "Popup"+mSec, "top=0,left=0,menubar=no,toolbar=no,location=no, height=600, width=800");
      e.preventDefault();
      my_window.focus();
    });
    

    使用 date.getTime() (不可能有任何重复的返回值,因为它是自 1970 年 1 月 1 日以来的秒数......)使每个新的弹出窗口都有一个新名称:)

    【讨论】:

      【解决方案3】:

      以下代码将根据需要打开弹出窗口的数量

      <html> 
      <head>
      <title></title>
      <script type="text/javascript">
       function TohokuImgPopup(url) {
      window.open(url,"windowName","windowFeatures")
      window.open(url,"DifferentWindowName","windowFeatures")// different name for each popup
      // create windows as much as you want to create
      }
      </script>
      </head>
      
      <body>
      <form>
      <input type="button" value="Open Windows" onclick="TohokuImgPopup()">
      </form>
      </body>
      

      您需要确保每个窗口名称不同,否则最后一个弹出窗口将覆盖它之前的弹出窗口。结果你会得到一个弹出窗口

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多