Javascript:检查重复打开的窗口

是否可以检查相同的窗口是否已经打开?

例如,我通过JavaScript打开了一个窗口。

我可以检查,如果这是通过JavaScript在另一个页面上打开?

只是想打开已经打开的页面,以避免重复的窗口。

谢谢 ;)

看看window.open()方法。 您必须指定窗口的名称作为第二个参数。 如果已经有一个带有这个名称的窗口,那么新的URL将在已经存在的窗口中打开,参见http://www.w3schools.com/jsref/met_win_open.asp

如果你真的想检查,如果窗口是由你自己的脚本打开,那么你必须保持一个全局变量或喜欢打开的窗口的引用,并创建

 var myOpenedWindow = myOpenedWindow || window.open(URL, "MyNewWindow"); 

你也可以在一个方法中封装这个行为:

 var myOpenWindow = function(URL) { var myOpenedWindow = myOpenedWindow || window.open(URL, "MyNewWindow"); myOpenedWindow.location.href= URL; myOpenedWindow.focus(); } 

并用myOpenWindow('http://www.example.com/');调用该函数myOpenWindow('http://www.example.com/');

如果你有父母子窗口,那么这里是一个解决方案,它将允许你检查一个子窗口是否从父子窗口打开。 这会将重点放在子窗口而不重新加载数据:

  <script type="text/javascript"> var popWin; function popPage(url) { if (popWin &! popWin.closed && popWin.focus){ popWin.focus(); } else { popWin = window.open(url,'','width=800,height=600'); } } </script> <a href="http://www.xzy.com" onclick="popPage(this.href);return false;">link</a> 

还有一件事情:: —如果用户刷新父窗口,它可能会失去它可能已经打开的任何子窗口的所有引用。

希望这有助于让我知道输出。

这将有助于如果你想打开链接的网址

  var Win=null; function newTab(url){ //var Win; // this will hold our opened window // first check to see if the window already exists if (Win != null) { // the window has already been created, but did the user close it? // if so, then reopen it. Otherwise make it the active window. if (!Win.closed) { Win.close(); // return winObj; } // otherwise fall through to the code below to re-open the window } // if we get here, then the window hasn't been created yet, or it // was closed by the user. Win = window.open(url); return Win; } newTab('index.html');