2012-02-09 24 views
4

我想知道是否可以获取由window.open javascript函数调用打开的弹出列表。获取打开的弹出窗口列表

我想在所有这些页面关闭后运行一些代码。我不介意解决方案是纯javascript还是JQuery。

在此先感谢。

回答

4

不,你不能得到页面打开的窗口列表通过window.open(悲哀地)。当你打开它们时,你必须跟踪它们(假设它是你打开它们的)。

如果您要做更现代的弹出式样式(定位元素作为虚拟窗口在页面内打开),那么您当然可以通过执行简单的选择器查询来获得它们的列表(只需添加一个类给他们,当他们显示时,然后查询DOM的元素与该类)。

+1

我只是想添加这个答案,因为这是一种替代解决方案http://stackoverflow.com/questions/634 0160 /如何对GET-的引用 - 的 - 所有已经打开的孩子窗口 – Skatox 2015-01-26 19:48:24

-1

你可以使用localstorage来做到这一点。我也使用本地存储插件,所以set和get是简短的。

function Op(r,rr,rrr){ 
    if(!rrr){rrr={};};if(!rrr.n){rrr.n='PopUps'} 
    ii={o:jQuery.localStorage.get(rrr.n)} 
    if(!ii.o){ 
     switch(rrr.n){ 
      case'unmOptions': 
       ii.o={audio0:1,audio1:1} 
      break; 
      default: 
       ii.o={p:{}} 
      break; 
     } 
    } 
    if(r&&rr&&!rrr.x){ 
     ii.o[r]=rr; 
    } 
    switch(rrr.x){ 
     case 0: 
      delete(ii.o[r]) 
     break; 
     case 1: 
      delete(ii.o[r][rr]) 
     break; 
    } 
    jQuery.localStorage.set(rrr.n,ii.o) 
    return ii.o 
} 

如何获取Windows的对象

Op() 
Op().p['window1'] 

设定值

Op('key','value') 

删除值

Op('key','',{x:0})