window.open,chrome将窗口返回到双屏幕设置中调用窗口屏幕

时间:2015-03-09 10:25:08

标签: javascript html5

当打开一个带有API window.open的窗口时,Chrome的行为与IE和FF不同,并且在双屏设置([screen1] [screen2])中将左侧位置指定到右侧屏幕/监视器上的位置。

当调用屏幕在右侧监视器上时,同样的情况发生,左侧位置始终在第二个监视器中开始,尽管打开属性screenX后正确报告屏幕宽度而不是0(将此窗口放在第二个监视器并在下面的jsfiddle中设置left=0来测试它。)

Chrome似乎总是将弹出位置捕捉到调用窗口屏幕。

  • Chrome 41.0.2272.76 m
  • FF 36.0.1
  • IE 11.0.9600.17633

你可以在这个小小提琴http://jsfiddle.net/inglun/en59odar/

中试试

当然,这是一项调整,以防止窗口在屏幕上结束,无法将第二个屏幕考虑在内。错误?有没有解决的办法?

在实际使用案例中,用户在第二个屏幕上放置一个窗口,期望它在下一个会话期间(可能是明天)结束。职位保存在本地存储中。

1 个答案:

答案 0 :(得分:0)

我发现了一些搜索并根据你的例子对其进行了修改......

$(function()
{
    $('#btnOpen').click(function(){
    // change 2100 put window on right screen
    var windowSize = {
      width: 500,
      height: 500,
    };
    var windowLocation = {
        left:  (window.screen.availLeft + (window.screen.availWidth / 2)) - (windowSize.width / 2),
        top: (window.screen.availTop + (window.screen.availHeight / 2)) - (windowSize.height / 2)
    };

    window.open('about:blank', null, 'width=' + windowSize.width + ', height=' + windowSize.height + ', left=' + windowLocation.left + ', top=' + windowLocation.top)

    });
});

来源是:popup open position in chrome