每次点击都会弹出一个新的弹出窗口

时间:2013-02-05 19:00:25

标签: javascript

我有一个弹出窗口,我正在使用下面的脚本打开。每次点击,我都想打开新的弹出窗口。 我明白,窗口的唯一名称将解决问题(在本例中为“SampleWindow”)。 保持窗户独特性的最佳方法是什么?有没有其他方法来管理javascript弹出窗口?

window.open(url, 'SampleWindow', 'WIDTH=300,HEIGHT=250');

3 个答案:

答案 0 :(得分:8)

将值_blank传递给name参数会将传递的URL加载到新窗口。像这样:

window.open(url, '_blank', 'width=300,height=250');

name参数(可选)的其他选项包括:

  • _blank - 网址已加载到新窗口中。这是默认
  • _parent - 网址已加载到父框架中
  • _self - 网址取代当前网页
  • _top - 网址替换了可能加载的所有框架集
  • name - 窗口名称

请注意,如果您要将此JavaScript传递给IE浏览器期望返回值的锚标记A,否则它将引用A标记本身。您的代码如下所示:

<a href="javascript:var w=window.open(url, '_blank', 'width=300,height=250');">test</a>

或更好(以避免向用户显示状态栏中的代码):

  <a href="javascript:void(0);" onclick="window.open(url, '_blank', 'width=300,height=250');">test</a>

链接:

答案 1 :(得分:1)

您可以将时间戳附加到窗口名称以创建真正唯一的窗口名称并将其分配给变量。如...

var myWindow = window.open(url, 'SampleWindow'+new Date().getTime(), 'WIDTH=300,HEIGHT=250');

由于您需要的不仅仅是windows,因此最好通过数组管理窗口。

var myWindow = [];
myWindow.push(window.open(url, 'SampleWindow'+new Date().getTime(), 'WIDTH=300,HEIGHT=250'));

这些窗口可由myWindow[index] myWindow[2].close();管理。

答案 2 :(得分:1)

每次都可以更改名称

var i = 0;
window.open(url, 'SampleWindow' + i, 'WIDTH=300,HEIGHT=250');
i++;