【问题标题】:After I open a window using window.open, can I resize its dimensions at will?使用window.open打开一个窗口后,我可以随意调整它的尺寸吗?
【发布时间】:2010-10-29 15:40:42
【问题描述】:

我意识到大多数浏览器会阻止窗口调整大小,但我想知道,由于我是这个新打开的窗口的父母,我是否有任何特权来调整它的大小,不仅是在打开时,而且在之后?

我也不想惹恼用户 :) 我特别需要保持 2 个窗口同步(相同大小)。

【问题讨论】:

  • 现在大多数浏览器都禁用了窗口大小调整功能。

标签: javascript resize window


【解决方案1】:

是的,你有控制权,这里是这个网站的例子:

http://www.javascriptkit.com/javatutors/advwin4.shtml

<script type="text/javascript">
var mylocation="../index.shtml"
var winheight=100
var winsize=100
var x=5

function go(){
  win2=window.open("","","scrollbars")

  if (!document.layers&&!document.all){
    win2.location=mylocation
    return
  }

  win2.resizeTo(100,100)
  win2.moveTo(0,0)
  go2()
}

function go2(){
  if (winheight>=screen.availHeight-3)
  x=0
  win2.resizeBy(5,x)
  winheight+=5
  winsize+=5

  if (winsize>=screen.width-5){
    win2.location=mylocation
    winheight=100
    winsize=100
    x=5
    return
  }

  setTimeout("go2()",50)
}

</script>
<a href="javascript:go()" onMouseover="window.status='open window';return true" onMouseout="window.status=''" >Open window</a>

【讨论】:

  • 好吧,我想我碰巧在 Opera 和 Chrome 中进行测试只是我的运气——这两种浏览器都不起作用 :)
  • 有人知道 chrome 和 opera 尊重这一点的方法吗? (我假设他们做出了“不要惹恼用户”的决定并禁用了此功能)
  • 尝试阅读这个网站:howtocreate.co.uk/perfectPopups.html - 它有很多相关信息 - 不同的浏览器,调整大小和重新定位
【解决方案2】:

window.open 方法的第二个参数允许您指定窗口名称,因此我假设您可以使用 JavaScript 调整窗口大小,通过名称引用窗口,在窗口打开后,是的。

我对 JavaScript 不是很感兴趣,所以无法临时提供书面示例,但理论上应该是可以的。

【讨论】:

    【解决方案3】:

    是的,您可以将窗口的特征变量设置为可调整大小。 保持第二个参数,窗口名称,相同。打开的窗口将得到更新。

    看这里:Link 几乎所有 window.open 的功能都在那篇文章中描述。

    所以,类似:

    window.open ("www.example.com", "mywindow","width:100,height:100");
    
    //something happens here, so you need to resize the window
    
    window.open ("www.example.com", "mywindow","width:250,height:250");
    

    【讨论】:

    • 重点是我需要使用javascript调整窗口大小。
    • winHandle.resizeTo(600,400).. 除了 resizeTo 在大多数浏览器中都有效。如果我能让它至少在 FF 和 IE 中工作,那将是一个开始。
    • @Mike - 我相信这可行。 .open() 中的第二个参数是窗口名称。如果您保持此名称相同并打开另一个窗口,则新内容将在已打开的窗口(使用该名称)中打开。给它一个新的高度和宽度,然后再次打开它。 (不过我不知道你的要求是什么)。
    • 你应该在属性列表中使用等号而不是冒号,即width=100,height=100而不是width:100;height:100
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 1970-01-01
    • 2012-11-26
    • 2014-05-02
    • 2013-11-08
    • 2012-12-02
    相关资源
    最近更新 更多