2012-01-25 19 views
6

,我有一個彈出窗口,當我選擇一些選項時打開信息。在我的應用程序中彈出前面

第一次確定,在任何事物前彈出高亮。

但是,當他失去焦點時,當用戶轉到其他窗口時,如果用戶再次點擊相同的選項,我希望彈出窗口再次出現在所有內容的前面。

我嘗試類似:

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

但DOS不適合我。

我失蹤了什麼?

回答

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(); 
} 
+1

現在我測試,並期待像一個很好的解決方案,工作在Chrome和IE罰款,但在FF行事詭異。不知道如何向你解釋,但是當我打開彈出窗口(使用'windowOpener'),然後打開另一個,從一個不同的點擊源,如果我點擊彈出窗口'windowOpener',他自己不專注於前面一切,這隻發生在FF。 –

相關問題