window.open高度在谷歌浏览器中与其他浏览器不同

时间:2010-08-11 20:09:10

标签: javascript google-chrome popup window.open

我正在使用javascript的window.open打开用户点击指定宽度和高度(760x581)的浏览器窗口,这在Internet Explorer,Safari和Firefox上正常工作,但谷歌Chrome给了我一些问题。在其他浏览器中,高度被正确地用作内容的高度,但在谷歌浏览器中,它使实际的浏览器窗口高581像素而不是内容。有办法解决这个问题吗?

<a href="http://domain.com/example.php" onclick="window.open('http://domain.com/example.php', '', 'width=760, height=581, top=15, left=15, toolbar=0, menubar=0, scrollbars=1, resizable=1, copyhistory=0, location=0, directories=0, status=1, titlebar=1, personalbar=0');return false">click here</a>

3 个答案:

答案 0 :(得分:4)

所以我搞砸了更多内容,并发现某些浏览器支持innerHeight的属性window.open,并且以下所有浏览器都按预期工作,所需内容高度为775px,只有50px添加到Chrome :

window.open($(this).attr('href'), 'videoplayer',
   'width=1242, height=775, innerHeight=825, location=no, menubar=no, status=no, titlebar=no, scrollbars=no'
);

我在Chrome 6.0.472.63,Firefox 3.6,3和2,IE 8&amp; 7,和Opera 10.62。当我只使用height时Chrome会大约50px太短并且有滚动条,但上面的所有浏览器都很好。添加的innerHeight属性设置为比我想要的多50px,可以在Chrome以及所有其他浏览器中使用。

更新:看起来这会在Safari中产生一个问题,增加50px的高度。将探讨解决这个问题的方法。

答案 1 :(得分:1)

问题仍然存在(Chrome17 +),如果你使用height = 600调用window.open,结果窗口内部高度为564px,这是36px短(对于Windows上的标题栏)。标题栏高度取决于平台,因此非常烦人。

我的解决方案只是增加了与身高的差异。

答案 2 :(得分:0)

从搜索谷歌超过一小时后我能够找到的内容来看,这就是谷歌浏览器的用途,我们只需要使用解决方法。我现在正在做的事情,除非找到更好的东西,只是将以下JS放在我正在打开的页面上:

if (navigator.appVersion.indexOf('Chrome')>0) {
    window.resizeBy(0, 581 - window.innerHeight);
}