将弹出窗口带到前面

时间:2012-01-25 19:19:34

标签: javascript jquery html

在我的应用程序中,当我选择一些选项时,我会弹出一个打开的信息。

第一次它OK,弹出高光在一切之前。

但是,当他失去焦点时,当用户进入其他窗口时,如果用户再次点击同一选项,我希望弹出的节目再次显示在所有内容之前。

我尝试类似的事情:

   <body onLoad="this.focus()">
   window.focus();   
   document.focus();  
   this.focus();  

但不适合我。

我缺少什么?

1 个答案:

答案 0 :(得分:14)

您应该保持对您打开的弹出窗口的引用,并在其上调用焦点方法。

var win = window.open(url, name, args);
win.focus();

如果你给出一个名字,打开一个弹出窗口,下次当你打开一个同名的弹出窗口时,如果它没有关闭,它将使用相同的弹出窗口。你只需要关注它。

您可以使用此简单功能来处理弹出窗口

function windowOpener(url, name, args) {

    if(typeof(popupWin) != "object" || popupWin.closed)  { 
        popupWin =  window.open(url, name, args); 
    } 
    else{ 
        popupWin.location.href = url; 
    }

    popupWin.focus(); 
 }