window.focus() 在 Chrome 中不起作用



这是我的代码:

var myWindow = window.open('','zzz','width=600,height=700');
myWindow.document.write('test');
myWindow.blur();
myWindow.focus();
window.onfocus=function(){
    this.document.write('<br />Focused!');
}
var w = window;
myWindow.onfocus=function(){
    this.blur();
    this.document.write('<br />Focusing on main window!');
    w.focus();
};
myWindow.focus();

这是小提琴:http://jsfiddle.net/maniator/nMGNS/

当弹出窗口聚焦时,它应该在弹出窗口上打印Focusing on main window!,然后专注于主窗口并在那里打印Focused!

但事实并非如此。

以下是有关我的浏览器的信息:

Google Chrome   22.0.1229.79 (Official Build 158531) m
OS  Windows
WebKit  537.4 (@129177)
JavaScript  V8 3.12.19.11
Flash   11.3.31.331
User Agent  Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4

旁白

我知道alert(...)黑客,我想避免它。 ​

通过@epascarello的评论,将document.write改为alert,就可以在chrome中工作了:

var myWindow = window.open('','zzz','width=600,height=700');
myWindow.document.write('test');
myWindow.blur();
window.onfocus=function(){
    alert('Focused!');
}
var w = window;
myWindow.onfocus=function(){
    this.blur();
    alert('Focusing on main window!');
    w.focus();
};
myWindow.focus();

最新更新