【问题标题】:Multiple Windows using window.open()使用 window.open() 的多个窗口
【发布时间】:2026-01-28 17:35:01
【问题描述】:

所以我们都知道,如果您单击其中嵌入了onClick(windown.open(...)) 的提交按钮,则会打开一个新窗口,其中包含您指定的所有可爱属性。但是,如果随后继续单击父窗口并再次单击“提交”按钮而不关闭前一个弹出窗口,则该窗口将被新数据覆盖。

现在我需要一种方法让window.open() 脚本在每次单击时创建新窗口。所以理论上我可以连续点击父“提交”按钮 2 次并出现 2 个不同的子窗口。

我确定这是微不足道的,但我似乎找不到任何东西。

【问题讨论】:

    标签: javascript asp.net


    【解决方案1】:

    给每个窗口一个new window name

    window.open(url, WindowName)
    

    【讨论】:

    • 谢谢,但它不起作用。使用它我只能打开一个窗口
    • 你给每个人一个唯一的名字吗?又名,用计数器增加它。
    • 您似乎也可以使用空字符串。在我的 Firefox 上,它每次都会创建一个新窗口。
    • 使用“_blank”作为WindowName,它总是会打开一个新窗口。
    【解决方案2】:

    试试这个,它会创建新的孩子,fiddle

    var randomnumber = Math.floor((Math.random()*100)+1); 
     window.open(yoururl,"_blank",'PopUp',randomnumber,'scrollbars=1,menubar=0,resizable=1,width=850,height=500');
    

    【讨论】:

    • 它在 javascript 中工作,但我正在创建 asp.net 应用程序。随机数已生成,但在 window.open 函数中传递值时它不起作用。
    • 与其使用随机数,不如使用计数器,这样可以保证名称的唯一性。它也是一个更简单的算法并且效率更高:window.open(yoururl,"_blank",'PopUp'+ ++counter +'…')
    • 这个答案被 wazoo 窃听,只是巧合:1. window.open() 最多接受 4 个参数:url、name、options、replace。您错误地调用它,参数过多且参数未对齐。 2. 随机数名称和窗口选项都没有按您的预期工作。 3.“_blank”本身意味着“在新窗口中打开” 4.1到100之间的随机数对于唯一性来说是不可靠的(尽管在你的回答中由于错误#1和#2它不会被用于无论如何)。
    【解决方案3】:

    选中此项,这可能有助于您每次打开新窗口。

    <!doctype html>
    <html lang="en">
    <head>
      <meta charset="utf-8">
      <title>jQuery demo</title>
      <script src="jquery-1.9.1.js"></script>
    </head>
    <body>
    
    <script>
    $(document).on("click", "#btn", function(event) {
        window.open("http://www.google.com", '_blank');
    });
    
    </script>
    <input type=button name="btn" id="btn">
    </body>
    </html>
    

    【讨论】:

    • 查看您的权利,该代码确实打开了一个窗口,但是如果您保持该子窗口打开,并重新单击父窗口上的按钮,则不会产生新的子窗口。它只是刷新同一个子窗口。我需要能够创建多个同时运行的子窗口。
    • @Percia Nancy:-不,我在 chrome 和 firefox 浏览器中尝试过它正在打开一个新页面。
    • 是的,它正在打开新页面。我必须多次打开一个新窗口才能多次点击。
    • 来自 Mozilla 文档:要在每次调用 window.open() 时打开一个新窗口,请为 strWindowName 使用特殊值 _blank。 developer.mozilla.org/en-US/docs/Web/API/Window/open
    【解决方案4】:

    window.open(url, '', 'width=1000, height=500')

    然后,每次点击弹出按钮都会弹出新的弹出窗口。

    【讨论】:

      【解决方案5】:

      在我的例子中,浏览器阻止了弹出窗口。我只是让它打开弹出窗口。

      【讨论】:

        【解决方案6】:

        您需要禁用仅打开一个窗口的跟踪出站链接。将以下 javascript 代码添加到 index.html 文件中:

        <script type="text/javascript">
          var clicky_custom = clicky_custom || {};
          clicky_custom.outbound_disable = 1;
        </script>
        

        【讨论】:

        • 这个答案似乎与问题无关,它与“Clicky web analytics”产品有关。