web-dev-qa-db-ja.com

chromeのポップアップオープン位置

Firefoxを使用してからwindow.open('blah.com','blah','left=-30,top=-300');を使用すると、ポップアップは最初のディスプレイの上にある2番目のディスプレイで開きますが、Chromeではleft=0,top=0でポップアップが開きます。 chromeがこれを行っている理由はありますか?また、どのように問題を修正しますか?

ありがとう!

19
Andrew

これはChromeのバグだと思いますが、JavaScriptを初めて使用するため、現時点では修正方法を認識していません。申し訳ありませんが、これは答えではないと確信しています。あなたが探していた。

2
Graham

これは、セカンダリモニターでポップアップウィンドウが開いたときのChromeのバグです。Chrome人々はこれがセキュリティの問題であると言っているようです(これがセキュリティの問題である方法は私を超えていますが)。

さて、存在しないセカンダリモニターでポップアップウィンドウを開くと、セキュリティの問題であることが理解できましたが...何でも。

この問題に関するディスカッションへのリンクは次のとおりです。

https://code.google.com/p/chromium/issues/detail?id=137681

18
Chris Jordan

私はこれが古い投稿であることを知っていますが、これが私の解決策です。画面オブジェクトの「avail *」プロパティを使用するだけです。

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(http://example.com, '_blank', 'width=' + windowSize.width + ', height=' + windowSize.height + ', left=' + windowLocation.left + ', top=' + windowLocation.top);

基本的に、「window.screen.availLeft」は他の画面の幅を提供するので、通常の中心計算をそれに追加できます。

12
Adrian Neatu
var w = 300;
var h = 300;
var left = (window.screen.width/2)-(w/2);
var top = (window.screen.height/2)-(h/2);

var win = window.open("example.html", "_blank", 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h);
win.moveTo(left, top);

Chrome .. ..

9
user2638430

最近、セキュリティ上の理由から、Chromeでは表示領域の外側のウィンドウを「非表示」にできないことに気付きました。

0
James Westgate

私はこの投稿が古いことを知っていますが、私は同様の問題を抱えています:

var w = 300;
var h = 300;
var left = (window.screen.width/2)-(w/2);
var top = (window.screen.height/2)-(h/2);

var win = window.open("example.html", "_blank", 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);


-Firefoxのポップアップウィンドウを中央に配置しますが chromeにはありません。また、これは表示領域の外ではないことに注意してください...

0
grasingerm