window.focus()在Chrome中无效

时间:2012-10-04 15:43:42

标签: javascript google-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(...)黑客,我想避免它。     

1 个答案:

答案 0 :(得分:0)

通过@ 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();