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

标签 javascript html safari

我正在使用以下代码弹出一个窗口——它需要一个精确的大小——它在除 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>

..和 size.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 有不同大小的边框,您需要补偿它们,可能有更好的方法来做到这一点,但这应该可以完成工作。

关于javascript - 弹出窗口 - Safari 中的大小与其他浏览器不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32704977/

相关文章:

javascript - Node.js NodeList 到 XML 字符串

html - 一行中的两个文本 block ,不使用表格

javascript - Web worker 在 mac safari 上触发异常

javascript - IE8 与 Chrome、Safari 和 IE9 的兼容性问题

javascript - 禁用单列的点击事件

javascript - 了解 "this"在两种不同上下文中的使用

javascript - 传递 '&' 和空格 javascript

html - 打印页面,右侧文本被截断

javascript - 将 iframe 的内容设置为 polymer 元素

javascript - Safari 点击事件和激活状态不能共存