【问题标题】:Google Chrome window.open height includes URL bar谷歌浏览器 window.open 高度包括 URL 栏
【发布时间】:2010-01-12 11:45:24
【问题描述】:

当我们打开一个窗口时:

window.open("/calendar",'calendar','width=950,height=576,titlebar=no,statusbar=no,menubar=no,resizable=no,scrollbars=no');

Firefox 3 和 IE 7 打开它,内容区域高度为 576 加上浏览器项(URL 栏、状态栏等)。

然而,Chrome 打开它的总高度为 576,这意味着滚动条出现在内容的右侧(然后是底部,因为现在宽度减小了)。

我该如何解决这个问题?它适用于 Web 应用程序的繁重布局部分,因此不仅仅是“让用户滚动”的问题,客户端不希望这样。

有人遇到过这个吗?

我不介意浏览器嗅探和打开更大的窗口,但我知道现在这很糟糕。

【问题讨论】:

标签: javascript html css google-chrome


【解决方案1】:

不幸的是,没有办法可靠地控制window.open 函数。例如,在 Opera 中,弹出窗口总是可以调整大小的。出于安全原因,大多数浏览器总是显示 URL 栏。

要么按照 haim evgi 的链接建议并在弹出页面中设置 overflow:hidden CSS,要么采用页内方法,如灯箱脚本。您可以使用这些在 iframe 中打开外部页面,并且可以精确控制大小。它们通常看起来也更好。

【讨论】:

    【解决方案2】:

    我知道这很愚蠢,但您可以嗅探铬并增加高度。我就是这样做的。。

        wh=576;
        if (navigator.appVersion.indexOf('Chrome')>0) wh=wh+50;
    window.open("/calendar",'calendar','width=950,height='+wh+',titlebar=no,statusbar=no,menubar=no,resizable=no,scrollbars=no');
    

    【讨论】:

      【解决方案3】:
      var popup = window.open("/calendar",'calendar','width=950,height=576,titlebar=no,statusbar=no,menubar=no,resizable=no,scrollbars=no');
      popup.resizeBy(0, 576 - popup.innerHeight);
      

      【讨论】:

        【解决方案4】:

        只需将“status=no”更改为“status=yes”即可。

        【讨论】:

          猜你喜欢
          • 2011-03-28
          • 2011-02-04
          • 1970-01-01
          • 1970-01-01
          • 2011-10-16
          • 2012-09-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多