2012-09-10 63 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> 
相关问题