使用JavaScript打开弹出窗口

33

我想要在两个不同的弹出窗口同时打开一个aspx页面(test.aspx)。

到目前为止,我已经使用第二个替换第一个,并且页面在第一个弹出窗口中重新创建。

我认为这里需要更多的澄清,所以,

基本上我创建了一个图表并将其放置在test.aspx中,然后将该图表保存为图像文件。我在test.aspx上放置了一个按钮,与stimulsoft报告相关联,该报告显示该图像的pdf格式。现在,如果我使用test.aspx打开它,它会替换图像页面。但我想同时查看图形和pdf。一个解决方案是我创建一个新的空白aspx页面来显示报告,但我尽量避免添加新页面,因为可能在test.aspx上挂载报告。

问题仅仅是在同一时间打开单个弹出窗口两次,但可能可行或不可行。每个弹出窗口都包含自己的动态控件和类似mrt的报告。


6
你尝试过什么?(http://whathaveyoutried.com) - Matt Ball
我尝试使用一个aspx页面来完成两件不同的事情,比如一个显示asp.net控件,另一个显示报表。 - Roomy
你可以使用 https://github.com/reduardo7/xpopup - Eduardo Cuomo
3个回答

64

更改您的两个不同调用中窗口的名称:

function popitup(url,windowName) {
       newwindow=window.open(url,windowName,'height=200,width=150');
       if (window.focus) {newwindow.focus()}
       return false;
     }

当您使用相同的URL打开一个新窗口时,windowName必须是唯一的,否则相同的窗口将被刷新。


1
我已经尝试过了,但没有起作用。谢谢Umesh。 - Roomy
在URL的查询字符串末尾添加一些随机值 - var noCache = '&x=' + new Date().getMilliseconds(); - Umesh
我接受了,但是还有一些问题。但我认为这是最好的选择。谢谢Umesh。 - Roomy
你应该使用像素为单位的高度和宽度。 - Mantas
有人能解释一下这个答案怎么会打开一个弹出窗口吗?window.open 通常会打开一个新的标签页。 - Philip Enc

13

要创建一个弹出窗口,你需要以下脚本:

<script language="javascript" type="text/javascript">

function popitup(url) {
newwindow=window.open(url,'name','height=200,width=150');
if (window.focus) {newwindow.focus()}
return false;
}


</script>

然后,您可以通过以下方式链接到它:

Then, you link to it by:

  <a href="popupex.html" onclick="return popitup('popupex.html')">Link to popup</a>
如果您想的话,也可以直接从document.ready函数中调用该函数。或者从另一个函数中调用。

谢谢,但我已经将那个脚本放入我的代码中了。但是不同的是,我想要在两个弹出窗口中同时打开相同的aspx页面。 - Roomy
1
您可以提供页面的 URL 并调用该函数两次。 - Engineer
是的,我尝试过那样做,但它又重新在第一个窗口打开了.... :( - Roomy
重要的是第二次使用它会显示PDF文件。 - Roomy
为什么要使用 window.focus 的 if 语句?直接使用 window.open(url,'name','height=200,width=150').focus(); 不是更好吗? - Nathan Redblur
显示剩余2条评论

7

首先,显示多个弹出窗口并不符合可用性的要求。

但是您可以通过使用多个弹出窗口名称来实现它。

var newwindow;
function createPop(url, name)
{    
   newwindow=window.open(url,name,'width=560,height=340,toolbar=0,menubar=0,location=0');  
   if (window.focus) {newwindow.focus()}
}

更好的方法是在同一个页面中使用两个不同的iFrames或Divs来显示两者。
更新:
因此,我建议在test.aspx页面上创建一个新选项卡来显示报告,而不是替换图像内容并放置pdf。

我没有遇到任何问题来打开我的代码页面,我不需要使用iFrames或Divs。两者都可以正常工作,但如果我在同一页上使用它们,第二个窗口也会在第一个窗口中打开,但我尝试保持第一个窗口并在第二个页面中打开报告。基本上这是因为URL引起的问题,但我正在寻找解决方案。谢谢Wolf。 - Roomy
我现在明白你的问题了。我更新了我的答案。 - Wolf
我不知道如何在弹出窗口中创建选项卡? - Roomy

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