繁体   English   中英

弹出窗口 - Safari 中与其他浏览器的大小不同

[英]Popup window - different size in Safari to other browsers

我正在使用以下代码弹出一个窗口 - 它需要是一个确切的大小 - 它在除 Safari 之外的每个浏览器中都有。

您可以直接使用以下 2 页进行测试。 第一个创建一个带有链接的页面,单击以弹出窗口。 第二个是打开的页面,该页面带有页面大小警报。

在 Safari Mac 中,它显示的尺寸为:800 x 578 - 在其他所有浏览器中为 800 x 640(应该是)。

带链接的页面:

<html>
<body>
<a href="size.html" onclick="javascript:void window.open('size.html','1401806967791','width=800,height=640,toolbar=0,menubar=0,location=0,status=0,scrollbars=0,resizable=0,left=0,top=0');return false;">PacFace</a>

<br />
<a href="#size.html" onClick="window.open('size.html','pagename','resizable,height=640,width=800'); return false;">New Page</a>

</body>
</html>

..和大小.html:

<html>
<script>
var w = window.innerWidth;
var h = window.innerHeight;

alert(w + ' × ' + h);

</script>
</html>

存在两个链接 - 在这两种情况下,它都会打开一个新窗口 - 在错误的高度(宽度很好) - 仅在 safari 中。

如何让它在所有浏览器中以相同大小弹出一个新窗口?

我对此进行了大量研究,但奇怪的是没有发现有关此特定主题的任何内容。

好吧,这里可能有一些语法错误,但就像我在评论中所说的那样,我无法测试它。 尝试这个:

function setWindowHeight(){
            var windowHeight = window.innerHeight;
            var outerHeight = window.outerHeight;
            var newHeight;
            if (windowHeight < 640) {
                newHeight = outerHeight + (outerHeight - windowHeight);
                document.getElementById('YourIdHere').style.height = newHeight + "px";
            }
        }

由于 IOS 具有不同大小的边框,您需要对它们进行补偿,可能有更好的方法来做到这一点,但这应该可以完成工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM