如何将通过javascript window.open函数打开的弹出窗口居中显示在屏幕变量中心,以当前选定的屏幕分辨率为中心?
window.open
更新:它现在也可以在尚未超出屏幕宽度和高度的窗口上运行!
如果您使用双显示器,则窗口将水平居中,而不是垂直居中…使用此功能可以解决此问题。
const popupCenter = ({url, title, w, h}) => { // Fixes dual-screen position Most browsers Firefox const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screenX; const dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screenY; const width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width; const height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height; const systemZoom = width / window.screen.availWidth; const left = (width - w) / 2 / systemZoom + dualScreenLeft const top = (height - h) / 2 / systemZoom + dualScreenTop const newWindow = window.open(url, title, ` scrollbars=yes, width=${w / systemZoom}, height=${h / systemZoom}, top=${top}, left=${left} ` ) if (window.focus) newWindow.focus(); }
用法示例:
popupCenter({url: 'http://www.xtf.dk', title: 'xtf', w: 900, h: 500});