Chrome 会在我移动窗口时隐藏我的窗口

Chrome hides my windows when I move it

本文关键字:窗口 我的 隐藏 移动 Chrome      更新时间:2023-09-26

我有这个通用的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当前隐藏了打开的窗口(它在资源管理器和Firefox中工作正常)。它打开它,移动它,但随后窗口保持最小化且无法访问。

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

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

有什么想法吗?谢谢!

事实证明,

这是当前版本的Chrome中的一个已知错误:

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

似乎解决方法是在调用打开后延迟任何对 resizeTo 或 moveTo 的调用,例如:

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

不是最优雅的解决方案,但在错误修复之前应该足够了。