需要使用window.resizeTo函数的替代方法

时间:2011-10-04 05:23:23

标签: javascript popup resize

我认为在我的asp页面中使用window.resize函数时,Firefox的bug fix会让我感到悲伤。我正在拼命寻找替代方案,并且非常感谢任何建议......

我的网页目前按以下方式设置

我有主页,我们称之为main.asp。 在main.asp中我有一个带按钮的html表单。单击该按钮时,调用javascript函数打开一个新窗口,如:

<html>
    <head>
        <title>Main Page</title>
    </head>
    <body>
        <SCRIPT LANGUAGE="javascript">
        function popupNew()
        {
            var win = window.open('child.asp', '_blank', 'width=400,height=260,directories=no,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,resizable=yes');
            win.focus();
        }
        </SCRIPT>
        <table>
            <tr>
                <td>
                    <button type="button" style="width:50px; font-family:arial,sans-serif; font-size:11px;" onclick="popupNew();">Add</button>
                </td>
            </tr>
        </table>
    </body>
</html>

好的,你可以看到我可以从main.asp打开child.asp。在Child asp中,我有一个表单。表单存储有关是否已发布有效数据的布尔值。我使用这个布尔值来确定窗口的大小(如果数据无效,我调整窗口大小以允许出现错误消息。这是一个粗略的例子,说明它是如何发生的......

<html>
  <head>
    <title>Child Page</title>
  </head>
  <body onload="_onLoad()">
    <SCRIPT LANGUAGE="javascript">
    function _onLoad()
    {
      var sResizeForError = String(document.getElementById("ResizeForError").value);

      if(sResizeForError == "true")
      {             
        window.resizeTo(400, 520);
      }
    }
    </SCRIPT>
    <form name="PageForm" method="Post" action="">
      <input type="hidden" name="ResizeForError" id="ResizeForError" value="true"/>
    </form>
  </body>
</html>

由于某些未知原因,该窗口不再在firefox中调整大小,但在I.E.

思考?除了窗口调整大小之外,还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

正如您发现的错误信息一样,如果没有使用window.open打开窗口或者窗口包含多个选项卡,则Firefox 7会锁定窗口大小调整。

您可以在互联网上了解更多相关信息:

你能做什么?

由于打开新窗口会有很多安全性和可用性问题,并且未来也可能会被锁定(虽然不太可能),但最适合您:

  • 在主窗口中央(水平和垂直)打开表单
  • 如果您的主窗口内容应该保留在那里并且用户焦点应该切换到表单,您可以在许多库支持的模式HTML窗口中打开表单(如jQuery UI