3

我试图让这个window.focus()功能在没有运气的情况下工作。

看看这个小提琴

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

如果您在 jsfiddle 页面加载后单击运行,则新窗口应该重新获得焦点。我究竟做错了什么?

4

3 回答 3

1

它在 FF 15 中对我“有效”。用户可以禁用脚本打开和聚焦窗口的功能,检查您的设置。哦,弹出窗口应该默认获得焦点,所以你不应该调用myWindow.focus().

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

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

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

myWindow.focus();

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

编辑:意识到我在 linux VM 中有 FF。该代码适用于当前的 Chrome 和最新的 Mint x64 下的 FF12

于 2012-09-10T01:00:31.087 回答
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>
于 2014-04-04T11:03:13.057 回答