我想用javascript和window.open
打开一个新窗口,但我的想法是在当前窗口的水平和垂直中心打开一个小窗口。
为简单起见,假设我有一个1024x768的屏幕,我想在其前面显示一个200x100的小窗口。所以,我需要那个小窗口以(512,384)为中心(1024,768)。
这样的事情:
我正在使用此代码来发现当前坐标:
var x = window.screenX;
var y = window.screenY;
... proceed to window.open...
但这会产生一个像这样的窗口
因为我有2台显示器,当浏览器在显示器2上时,这会在第一台显示器的上角产生一个小窗口。
有没有办法获得正确的坐标?
答案 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我刚注意到有人发布了同一个问题的链接,并提供相同类型的答案 - 这确实有效,所以如果它没有解释它是怎么回事,以及你用什么浏览器'重新使用!