Javascript 弹出窗口-Safari中的大小与其他浏览器不同
我使用下面的代码弹出一个窗口-它需要精确的大小-除了Safari,其他浏览器都有 您可以通过以下两页直接测试这一点。第一个创建一个带有链接的页面,单击该链接可弹出窗口。第二个是打开的页面,该页面具有页面大小的警报 在Safari Mac中显示尺寸:800 x 578-在其他浏览器中显示尺寸为800 x 640(应该是) 带有链接的页面: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
<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工作正常)