我们如何将通过 javascriptwindow.open函数在屏幕变量中心打开的弹出窗口居中到当前选择的屏幕分辨率?
window.open
单/双显示器功能 (感谢http://www.xtf.dk - 谢谢!)
更新:由于@Frost,它现在也可以在没有达到屏幕宽度和高度的窗口上工作!
如果您在双显示器上,窗口将水平居中,但不是垂直居中......使用此功能来解决这个问题。
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});
信用到: http ://www.xtf.dk/2011/08/center-new-popup-window-even-on.html (我只想链接到这个页面,但以防万一这个网站出现故障代码就在这里,干杯!)