2017-09-15 14 views
3

javascriptとwindow.openを使用して新しいウィンドウを開きたいのですが、私の考えは、現在のウィンドウの水平と垂直の中心に小さなウィンドウを開くことです。ブラウザ画面の座標を取得する

わかりやすくするため、1024x768の画面があり、その前に200x100の小さなウィンドウを表示したいとします。だから、(1024,768)の中心である(512,384)に中心を置くために、その小さな窓が必要です。

このような何か:

enter image description here

私は現在の座標を発見するためにこのコードを使用しています:

var x = window.screenX; 
var y = window.screenY; 
... proceed to window.open... 

をしかし、これは、この

enter image description here

のようなものであるウィンドウを生成します

であり、2つのモニターがあるため、ブラウザーがモニター2にあると、最初のモニターの上隅に小さなウィンドウが表示されます。

正しい座標を取得する方法はありますか?

+0

ヘルプ:https://stackoverflow.com/questions/4068373/center-a-popup-window-on-screen – Hexana

+0

残念ながら私のために働いていません。 – SpaceDog

答えて

4

あなたはそれを中央に窓のはinnerWidthおよびinnerHeightはを使用することができます。

const popupWidth = 200; 
const popupHeight = 100; 
const popupTop = (window.innerHeight/2) - (popupHeight/2); 
const popupLeft = (window.innerWidth/2) - (popupWidth/2); 

window.open('https://google.com', 'Google Search', `width=${popupWidth},height=${popupHeight},top=${popupTop},left=${popupLeft}`); 

注:私はちょうど簡単にするためにそこES6文字列を使用しましたが。

PS誰かが同じ質問の回答を同じ種類の回答で投稿したことに気付きました。これはうまくいきます。そうでないと、どのようなブラウザで、どのブラウザを使用しているのか説明してください!

+0

申し訳ありませんが、これは私が投稿したコードよりも悪い結果をもたらします。今、小さな窓は親から遠いです。 – SpaceDog

+0

私はこのコードをテストしたところ、ウィンドウを細かくセンタリングしました。これが動作しない理由を理解するために、セットアップの詳細が必要です。 –

+1

T H A N K S! ! ! – SpaceDog

関連する問題