Нужна альтернатива использованию функции window.resizeTo - PullRequest
2 голосов
/ 04 октября 2011

Я считаю, что исправление ошибки в Firefox вызывает у меня горе, когда я использую функцию window.resize на моих страницах asp. Я отчаянно ищу альтернативу этому и буду очень признателен за любые предложения ...

Мои страницы в настоящее время настраиваются следующим образом

У меня есть главная страница , давайте назовем ее 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>

Хорошо, как вы видите, я могу открыть child.asp из main.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 Ответ

1 голос
/ 04 октября 2011

Поскольку вы нашли информацию об ошибке, это правда, что Firefox 7 изменил размер заблокированного окна, если оно не было открыто с помощью window.open или окно содержит более одной вкладки.

Более подробную информацию вы можете найти в интернете:

Что вы можете сделать?

Поскольку открытие новых окон сопряжено с множеством проблем с безопасностью и удобством использования, а также может быть заблокировано в будущем (хотя и маловероятно), вам лучше либо:

  • открыть форму в центре (по горизонтали и вертикали) в главном окне
  • если содержимое вашего главного окна должно оставаться там, а фокус пользователя должен переключиться на форму, вы можете открыть форму в модальном окне HTML, которое поддерживают многие библиотеки (например, jQuery UI )
...