如何在同一个窗口中打开一系列小窗口?

时间:2009-09-28 21:55:39

标签: html

我知道如何打开一个小窗口:

function SmallWindow(theURL,winName)
  {window.open(theURL,winName,'toolbar=yes,scrollbars=yes,
menubar=yes,toolbar=yes,resizable=yes,width=800,height=500,left=300,top=200');}

被称为

<a href="http://newURL.html" onclick="SmallWindow(this.href, ''); return false">
  Click here</a>

问题在于,在大窗口的各种链接中进行多次点击会产生一系列不同的小窗口。我希望所有那些小窗口在同一个窗口上相互重叠。我试图给出一个窗口名称WIN

function SmallWindow(theURL,winName)
{window.open(theURL,"WIN",'toolbar=yes,scrollbars=yes,menubar=yes,toolbar=yes,
resizable=yes,width=800,height=500,left=300,top=200');

但是当打开一个新的小窗口时,浏览器不会跳转到它,并且用户没有意识到新的小窗口已经打开了!

我找不到这个问题的答案。谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

对window.open的调用将返回对新窗口的引用(或者在已经打开具有相同名称的窗口的情况下的现有窗口)。然后,您可以在该窗口上调用focus()方法将其置于最前面。

function SmallWindow(theURL, winName)
{
  var myWindow = window.open(theURL, winName,'toolbar=yes,scrollbars=yes,menubar=yes,toolbar=yes, resizable=yes,width=800,height=500,left=300,top=200');
  myWindow.focus();
}

答案 1 :(得分:0)

我认为你可以将弹出窗口带到像这样的:

var newWin = window.open(url, "WIN", ...);
newWin.focus();

正如您已经发现的那样,始终使用相同的窗口名称(例如“WIN”)非常重要。否则,每次window.open()电话都会打开一个新窗口。

然后focus()方法会将窗口置于前面。