8

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

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

3 回答 3

9

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

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

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

  • _blank- URL 被加载到一个新窗口中。这是默认的
  • _parent- URL 被加载到父框架中
  • _self- URL 替换当前页面
  • _top- URL 替换任何可能加载的框架集
  • name- 窗口的名称

请注意,如果您将此 JavaScript 传递给AIE 浏览器期望返回值的锚标记,否则它将引用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>

链接:

于 2013-02-05T19:18:06.427 回答
2

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

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

既然你想要的不仅仅是 windows,那么通过数组来管理 windows 会更好。

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

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

于 2013-02-05T19:15:11.130 回答
1

您可能每次都更改名称

var i = 0;
window.open(url, 'SampleWindow' + i, 'WIDTH=300,HEIGHT=250');
i++;
于 2013-02-05T19:17:12.997 回答