2012-09-10 64 views
2

我試圖讓window.focus()函數無法運行。window.focus()不適用於Chrome和Firefox

Take a look at this fiddle

var myWindow = window.open('','zzz','width=600,height=700'); 
    myWindow.document.write('test'); 
    myWindow.focus();​ 

如果您單擊的jsfiddle頁面加載後運行,那麼新的窗口應該找回焦點。我究竟做錯了什麼?

+1

[它的工作對我來說在Chrome(http://jsfiddle.net/94KYp/ 5 /)。 –

+0

@SheikhHeera你在Chrome 21上嗎? – qwertymk

+0

是的,'21.0.1180.89 m' –

回答

1

它在FF 15中「適用於我」。用戶可以禁用腳本打開和聚焦窗口的能力,檢查您的設置。哦,彈出窗口應該默認爲關注焦點,因此您不必撥打myWindow.focus()

一些小點,可能有無關的問題,但你可能需要修正:

  1. 有效的文件應寫入新的窗口,需要一個title元素和一個塊元素,例如document.write('<title></title><div></div>,一個DOCTYPE強烈建議過
  2. 輸入流應該關閉您寫完後,用document.close()
+0

[它在Chrome中爲我工作](http://jsfiddle.net/94KYp/5/)。 –

+0

命名彈出窗口在初始打開後將不會集中。所以它仍然是一個好主意。 –

0

使用Chrome至少(不要有FF)只需更換

myWindow.focus(); 

myWindow.blur(); 
setTimeout(myWindow.focus, 0); 

編輯:實現我有FF在Linux虛擬機。該代碼是罰款與目前的Chrome,並與最新的薄荷64下FF12

+0

不適用於Chrome 21 – qwertymk

+0

是的。適用於Chrome:21.0.1180.89米(Win x64) – enhzflep

0

這個工作對我來說:

<script> 
var popupWin; 
function open_popup(url) { 
    if(typeof(popupWin) == "object") popupWin.close(); 

    popupWin = window.open(url, 'PopupName', 'scrollbars=no,resizable=yes, width=600,height=800,status=no,location=no,toolbar=no'); 
    popupWin.focus(); 

} 
</script> 
相關問題