我正在使用此代码在屏幕中央打开一个弹出窗口
function popupwindow(url, title, w, h) {
wLeft = window.screenLeft ? window.screenLeft : window.screenX;
wTop = window.screenTop ? window.screenTop : window.screenY;
var left = wLeft + (window.innerWidth / 2) - (w / 2);
var top = wTop + (window.innerHeight / 2) - (h / 2);
return window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left + ', screenX=' + left + ', screenY=' + top);
}
在Firefox,IE和Safari中一切正常,但在Chrome中,弹出窗口随机出现。 我怎样才能在Chrome中使用它?
答案 0 :(得分:1)
我看到下面的代码工作正常。
<script>
function popupCenter(url, title, w, h) {
var left = (screen.width/2)-(w/2);
var top = (screen.height/2)-(h/2);
return window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
}
</script>
链接示例:
<a onclick="popupCenter('http://www.nigraphic.com', 'myPop1',450,450);" href="javascript:void(0);">CLICK TO OPEN POPUP</a>
您可以查看详细信息here
答案 1 :(得分:0)
这种情况正在发生,因为Chrome中的缩放级别不是100%。如果缩放级别关闭,则会更改坐标的获取方式。在其他浏览器中,至少是IE,缩放因子不会改变打开窗口的位置。所以通过检查缩放来纠正它,这将使用您之前在Chrome中提供的给定功能来解决您的问题。
另外,这是关于检查浏览器缩放级别的好文章:https://stackoverflow.com/a/5078596/2762516