【问题标题】:cross-browser resize browser window in JavaScript在 JavaScript 中跨浏览器调整浏览器窗口大小
【发布时间】:2011-11-19 02:30:12
【问题描述】:

我希望能够使用 JavaScript 调整浏览器窗口的大小。我不想用jQuery,代码越小越好,但它必须在包括Chrome在内的所有主流浏览器中都能工作。

有什么解决办法吗?

感谢您的帮助!

附:标记这个问题的标签应该合并,但我不知道如何。

浏览器-----------与-->网络浏览器

跨浏览器----同-->浏览器兼容性

【问题讨论】:

  • 你为什么不想使用jQuery(或其他一些有用的框架)?
  • @Eddie 这只是一个很小的任务,我宁愿不包含一个非常大的库。

标签: javascript browser cross-browser


【解决方案1】:

window.resizeTo( width, height );

您可能面临的问题是现代浏览器会阻止您在设置中无法调整窗口大小。没有办法解决这个问题。

Chrome 不允许这样做。 Won't Fix Bug

IE 基于security zones

【讨论】:

  • 因为现代浏览器会阻止它。铬won't fix
  • 我喜欢铬线分解成火焰的样子,就像一群孩子在发脾气。
  • 文章说resizeTo 是 DOM0:一般约定不在任何标准中。
【解决方案2】:

事实上,Chrome、Firefox 和较新的 IE 不允许调整选项卡式窗口和 window.open()(至少是 Chrome)未打开的窗口的大小。

但对于弹出窗口,它在大多数情况下是可行的,除非浏览器中的安全设置阻止了该功能。但是使用window.resizeTo() 很复杂。请改用window.resizeBy()。

Chrome 有一个 bug 可以很快得到一个弹出窗口的大小,所以你必须解决这个问题。

if(navigator.userAgent.toLowerCase().indexOf('chrome') > -1)
    var t = setTimeout("resize()", 200);
else
    resize();

function resize() {
    var innerWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
    var innerHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
    var targetWidth = 800;
    var targetHeight = 600;
    window.resizeBy(targetWidth-innerWidth, targetHeight-innerHeight);
}

【讨论】:

    【解决方案3】:

    网页无法在 Chrome 中调整主浏览器窗口的大小。 JavaScript 代码只允许调整弹出窗口的大小。

    【讨论】:

      猜你喜欢
      • 2010-10-10
      • 2015-04-20
      • 2023-04-07
      • 2012-05-23
      • 1970-01-01
      • 2017-11-09
      • 2012-02-23
      • 1970-01-01
      • 2011-10-04
      相关资源
      最近更新 更多