【问题标题】:window.focus() not working for Chrome and Firefoxwindow.focus() 不适用于 Chrome 和 Firefox
【发布时间】:2012-09-10 00:47:18
【问题描述】:

我正在尝试让 window.focus() 函数正常工作。

Take a look at this fiddle

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

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

【问题讨论】:

  • @SheikhHeera 你在 Chrome 21 上吗?
  • @SheikhHeera 我关闭了所有扩展程序,但它仍然不适合我
  • 你没看到顶部的窗口和里面的Focused! 吗?
  • @SheikhHeera 是的,第一次,但是当我再次单击运行时,它不会重新聚焦

标签: javascript firefox google-chrome


【解决方案1】:

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

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

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

【讨论】:

  • 命名弹出窗口在初始打开后不会聚焦。所以调用它仍然是个好主意。
【解决方案2】:

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

myWindow.focus();

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

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

【讨论】:

  • 是的。适用于:Chrome 21.0.1180.89 m (Win x64)
【解决方案3】:

这对我有用:

<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>

【讨论】:

    猜你喜欢
    • 2013-09-28
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    • 2012-01-27
    • 2012-02-14
    • 2013-02-19
    相关资源
    最近更新 更多