Javascript:检查重复打开的窗口

时间:2011-01-09 11:34:47

标签: javascript windows

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

例如,我已经通过javascript打开了一个窗口。

我可以通过javascript检查是否在另一个页面上打开了吗?

如果已经打开以避免重复的窗口,只想关注页面。

谢谢;)

3 个答案:

答案 0 :(得分:2)

查看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/');

调用该函数

答案 1 :(得分:1)

如果您有父子窗口,那么这里有一个解决方案,允许您检查子窗口是否从启动子窗口的父窗口打开。这将带来一个 专注于子窗口而不重新加载其数据:

 <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>

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

希望这会有所帮助,让我知道输出。

答案 2 :(得分:0)

如果您想从链接

打开网址,这将有所帮助
 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');