窗口大小调整在Chrome和Opera中无法工作

14

window.resize在Chrome和Opera中无法使用。如何使其起作用?


嘿,如果你找到了更好的答案,请分享一下,或者接受其中一个。谢谢。 - winner_joiner
3个回答

27

没有 window.resize()

......不过......

有以下方法:

window.resizeTo(width, height)

window.resizeBy(x, y)

重要提示:

  1. 不能调整未通过 window.open 创建的窗口或选项卡的大小。
  2. 不能调整位于带有多个选项卡的窗口中的窗口或选项卡的大小。
  3. 即使您通过 window.open(...) 创建了窗口,它默认也是不可调整大小的...请参见 4。
  4. 要使使用 window.open() 创建的窗口可以调整大小,必须使用可调整大小的功能打开它。

创建包含“可调整大小”功能的外部窗口示例:

myExternalWindow = window.open("http://myurl.domain", "myWindowName", "resizable");
myExternalWindow.resizeTo(500,500); //resize window to 500x500
myExternalWindow.resizeBy(-100,-100); //make it smaller relatively => to 400x400

提示:还有一些浏览器扩展可以允许窗口调整大小... (Chrome)(Mozilla Firefox)

提示2:Chrome扩展API - https://developer.chrome.com/extensions/windows


我刚意识到人们从哪里得到这个想法,原因是有一个名为“resize”的事件(而不是方法)在window上触发(https://developer.mozilla.org/en-US/docs/Web/API/Window/resize_event),但再次强调,这不是`window`的方法,它只是一个事件 :) - jave.web

4

1
@hema:不,它根本不存在那里(或者存在但没有任何作用)。此外,一些其他浏览器有用户选项来禁用该功能,因此您无法在任何浏览器中真正依赖它。 - Guffa

0

注意:没有适用于 Window 对象的公共标准,但所有主要浏览器都支持它。

window.resizeTo()window.resizeBy() 方法在除 Opera 和 Chrome 以外的所有主要浏览器中都受支持。

参考
Window resizeTo() 方法
Window resizeBy() 方法


如果窗口是弹出式的,它将在Opera和Chrome中运行。 - hema
4
区别在于弹出窗口是由您的页面打开,而主窗口是由用户打开的。有了很多选项卡,为什么您的页面应该有权更改所有选项卡的页面大小? - David Mårtensson
@DavidMårtensson 这是微软为IE考虑的一个理由,但他们只是在有其他标签页打开时使该功能无用。 - Francisco Zarabozo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接