2017-09-15 95 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

牛逼^ h A Nķ小號! ! ! – SpaceDog