Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 弹出窗口-Safari中的大小与其他浏览器不同_Javascript_Html_Safari - Fatal编程技术网

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

Javascript 弹出窗口-Safari中的大小与其他浏览器不同,javascript,html,safari,Javascript,Html,Safari,我使用下面的代码弹出一个窗口-它需要精确的大小-除了Safari,其他浏览器都有 您可以通过以下两页直接测试这一点。第一个创建一个带有链接的页面,单击该链接可弹出窗口。第二个是打开的页面,该页面具有页面大小的警报 在Safari Mac中显示尺寸:800 x 578-在其他浏览器中显示尺寸为800 x 640(应该是) 带有链接的页面: <html> <body> <a href="size.html" onclick="javascript:void window

我使用下面的代码弹出一个窗口-它需要精确的大小-除了Safari,其他浏览器都有

您可以通过以下两页直接测试这一点。第一个创建一个带有链接的页面,单击该链接可弹出窗口。第二个是打开的页面,该页面具有页面大小的警报

在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>

var w=窗内宽度;
var h=窗内高度;
警报(w+“×”+h);
只有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";
            }
        }
函数setWindowHeight(){
var windowHeight=window.innerHeight;
var outerHeight=window.outerHeight;
var newHeight;
如果(窗高<640){
newHeight=outerHeight+(outerHeight-windowHeight);
document.getElementById('YourIdHere')。style.height=newHeight+“px”;
}
}

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

为什么要声明两次
var w
呢?很抱歉,修复了这个问题-您可能需要刷新加载的页面以获得正确的数字-但是您明白了。我很确定这是因为您正在设置“外部”高度,由于safari有不同大小的边框,所以内部尺寸会有所不同是有道理的。好吧-我如何解决这个问题?(不是宽度很完美-800-只是高度有问题,看起来好像它与地址栏有关-地址栏是可修复的-但是它也是用Chrome制作的,Chrome工作正常)