window.focus()不适用于Chrome和Firefox

时间:2012-09-10 00:47:18

标签: javascript firefox google-chrome

我正试图让window.focus()功能无效。

Take a look at this fiddle

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

如果在jsfiddle页面加载后单击运行,则新窗口应该返回焦点。我做错了什么?

3 个答案:

答案 0 :(得分:1)

它在FF 15中“适用”。用户可以禁用脚本打开和聚焦窗口的功能,检查您的设置。哦,默认情况下弹出窗口会得到焦点,因此您不必调用myWindow.focus()

可能与此问题无关的一些小问题,但您可能需要修复:

  1. 应该将有效文档写入新窗口,需要标题元素和一个块元素,例如: document.write('<title></title><div></div>,强烈建议使用DOCTYPE
  2. 完成书写后,应关闭输入流,使用document.close()

答案 1 :(得分:0)

对于Chrome至少(没有FF)只需替换

myWindow.focus();

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

编辑:已经实现我在Linux VM中有FF。目前的Chrome和最新的Mint x64下的FF12代码都很好。

答案 2 :(得分: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>