当我移动它时,Chrome会隐藏我的窗户

时间:2012-04-17 10:02:21

标签: javascript google-chrome

我有这个通用的javascript函数来打开一个窗口:

function OpenWindow(url,windowname,wide,high)
{
    spop=window.open(url,windowname,"width="+wide+",height="+high+",scrollbars=1,resizable=1,statusbar=1,menubar=0");
    spop.moveTo(Math.round((screen.availWidth-wide)/2),Math.round((screen.availHeight-high)/2));
    spop.focus();
}

打开后,我将其移动到屏幕中间。 问题是Chrome目前正在隐藏打开的窗口(它在Explorer和Firefox中工作正常)。它打开它,移动它,然后窗户保持最小化和不可接受。

有趣的是,如果我在调用该函数的链接上双击,那么窗口会出现在它应该的位置,只是它的大小和高度不正确(它非常小,我要调整它的大小)。更有趣的是,它曾经在Chrome中运行,但几个月前停止了工作。

问题不在于focus()调用(我发现人们遇到问题)。如果我删除moveTo(),窗口会出现(但不会居中)。

有什么想法吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

事实证明,这是当前Chrome版本中的一个已知错误:

http://code.google.com/p/chromium/issues/detail?id=115585

似乎修复是在调用open之后延迟对resizeTo或moveTo的任何调用,例如:

setTimeout(function(){
    spop.moveTo(
        Math.round((screen.availWidth - wide) / 2),
        Math.round((screen.availHeight - high) / 2)
    );
    spop.focus();
},100);

不是最优雅的解决方案,但它应该足够,直到修复错误。