如何获取所有已打开的子窗口的引用

Gov*_*iya 24 javascript window.open

我想获得所有已经打开的子窗口的引用.有什么办法吗?我不是child = window.open(....)只使用window.open(....)和打开多个子窗口.

Hra*_*ian 57

如果您不想更改当前代码,可以简单地覆盖window.open()功能:

var openedWindows = [];
window._open = window.open; // saving original function
window.open = function(url,name,params){
    openedWindows.push(window._open(url,name,params));
    // you can store names also...
}
Run Code Online (Sandbox Code Playgroud)

在调用之前运行此代码window.open().对打开的窗口的所有引用都将存储在openedWindows数组中.您可以随意访问它们

  • @Govind:这个解决方案的一个警告 - 它是一个黑客,最好避免以防止未来的维护问题.请参阅:http://stackoverflow.com/questions/6223449/why-is-it-frowned-upon-to-modify-javascript-objects-prototypes/6223589#6223589 (3认同)

T.J*_*der 17

我不相信你可以,除非你知道窗户的名字,我猜你没有.(如果你知道他们的名字,你可以window.open("", "name")用来获得他们的名字.)

当然,更好的选择是记住从window.open第一位返回的引用- 但你知道.:-)