使用window.open()创建多个窗口

29

众所周知,如果您单击嵌入onClick(windown.open(...))的提交按钮,则会打开一个新窗口,并显示您指定的所有属性。然而,如果您在没有关闭先前的弹出窗口的情况下继续单击父窗口并再次单击“提交”按钮,那么同一窗口将被新数据覆盖。

现在我需要让window.open()脚本每次单击时都创建新窗口。因此,理论上我可以连续两次单击父级“提交”按钮,并出现2个不同的子窗口。

我相信这很简单,但我似乎找不到任何信息。

6个回答

22

3
谢谢,但是它没有起作用。使用这个方法我只能打开一个窗口。 - Percia Nancy
1
你给每个变量都起了唯一的名字吗?也就是说,用计数器递增它们的名称。 - epascarello
1
您也可以使用空字符串。在我的Firefox中,它每次都会创建一个新窗口。 - Rodrigo
使用"_blank"作为WindowName,它将始终打开一个新窗口。 - Ryan Shillington

13

试试这个,它会创建一个新的子元素,示例

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函数时,它无法正常工作。 - Percia Nancy
11
不要使用随机数,改用计数器,这样可以确保名称是独一无二的。这也是一种更简单、更高效的算法:window.open(yoururl,"_blank",'PopUp'+ ++counter +'…') - RobG
12
这个答案有很多问题,只是巧合时能够工作:
  1. window.open() 最多使用四个参数:url、name、options 和 replace。你调用它的方式错误,参数过多且错位。
  2. 随机数名称和窗口选项都没有按您的意图工作。
  3. "_blank" 本身表示“在新窗口中打开”。
  4. 1到100之间的随机数不可靠(尽管在这个答案中由于错误#1和#2它并没有被用来执行此功能)。
- Sam Watkins

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
@Percia Nancy:不,我在Chrome和Firefox浏览器中尝试过了,它会打开一个新页面。 - abcd
是的,它正在打开新页面。我需要为多个点击打开多个新窗口。 - Percia Nancy
3
使用window.open()调用时,若要在每次打开一个新窗口,请将strWindowName参数设置为特殊值_blank。这是来自Mozilla文档的翻译内容。 - Fırat Küçük

3
每次单击弹出窗口按钮,您都会获得新的弹出窗口。代码如下:

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


3

在我的情况下,浏览器阻止了弹出窗口。我只需要允许它打开弹出窗口。

输入图像描述


-5

您需要禁用跟踪外部链接,这将只打开一个窗口。请在index.html文件中添加以下JavaScript代码:

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

2
这个回答似乎与问题无关,它与“Clicky网站分析”产品有关。 - Sam Watkins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接