获取浏览器屏幕的坐标

时间:2017-09-15 14:44:08

标签: javascript html window

我想用javascript和window.open打开一个新窗口,但我的想法是在当前窗口的水平和垂直中心打开一个小窗口。

为简单起见,假设我有一个1024x768的屏幕,我想在其前面显示一个200x100的小窗口。所以,我需要那个小窗口以(512,384)为中心(1024,768)。

这样的事情:

enter image description here

我正在使用此代码来发现当前坐标:

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

但这会产生一个像这样的窗口

enter image description here

因为我有2台显示器,当浏览器在显示器2上时,这会在第一台显示器的上角产生一个小窗口。

有没有办法获得正确的坐标?

1 个答案:

答案 0 :(得分: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我刚注意到有人发布了同一个问题的链接,并提供相同类型的答案 - 这确实有效,所以如果它没有解释它是怎么回事,以及你用什么浏览器'重新使用!