Добавляем...


Открытие и закрытие обычных окон
Методы alert(), confirm() и prompt() позволяют быстро создавать окна специального вида, но часто требуется открыть самое обычное окно, чтобы показать в нем содержимое Web-страницы или результаты некоторых вычислений. Для создания и уничтожения окон используются методы open() и close() объекта Window. Открывая окно, можно установить для него URL-адрес, имя, размеры, указать наличие определенных кнопок и другие атрибуты, например возможность изменения размеров окна. Основным синтаксисом этого метода является

window.open(url, имя, опции, замена)

где
  • url — адрес URL, указывающий документ для загрузки в данное окно;
  • имя — имя данного окна (позже его можно использовать в атрибутах target ссылок HTML);
  • опции — строка, в которой указаны опции оформления окна, разделенные запятыми;
  • замена — необязательное логическое значение (true или false), указывающее, должно ли содержимое адреса URL заменять содержимое окна (применимо к уже существующим окнам).
Вот пример использования этого метода:

secondwindow = open("http://www.yahoo.com", "yahoo", "height=300, width=200, scrollbars=yes");

В результате должно открыться окно страницы Yahoo высотой в 300 и шириной в 200 пикселей и с полосами прокрутки.

Программисты создают окна по-разному, но часто для этого используются ссылки и кнопки. Например,

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> Открытие окон </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<body>
<a href="#" onclick="javascript: secondwindow = open('http://www.yahoo.com', 'yahoo', 'height=300,width=200,scrollbars=yes');">Открыть окно</a>
<form action="#" method="get">
<input type="button" value="Открыть окно" onclick="secondwindow =open('http://www.yahoo.com', 'yahoo', 'height=300,width=200,scrollbars=yes');" />
</form>
</body>
</html>

Замечание. Рассматривая примеры данной главы, убедитесь в том, что для вашего браузера не установлена программа блокирования всплывающих окон. Не все всплывающие окна бесполезны.

Если окно открыто, можно использовать метод close() для того, чтобы окно закрыть. Например, следующий фрагмент программного кода предлагает кнопки для открытия и закрытия окна. Обратите внимание на использование переменной secondwindow, которая содержит экземпляр создаваемого объекта Window.

<form action="#" method="get">
<input type="button" value="Oткрыть окно"
onclick="secondwindow = open('http://www.yahoo.com', 'yahoo', 'height=300,width=200,scrollbars=yes');" />
<input type="button" value="3aкрыть окно" onclick="secondwindow.close();" /> </form>

Такое использование метода close() может таить в себе опасности. Если объекта secondwindow не существует, вы получите сообщение об ошибке. Загрузите программный код этого примера снова и сразу же щелкните на кнопке Закрыть окно — вы получите сообщение об ошибке. Но если вы создадите окно хотя бы один раз, вы уже не увидите сообщения об ошибке, несмотря на отсутствие окна на экране, поскольку объект будет оставаться в цепочке области видимости. Чтобы обезопасить себя при закрытии окна, необходимо сначала найти объект, а затем уже пробовать закрыть его. В следующем операторе if перед попыткой получения доступа проверяется наличие непустого значения в переменной secondwindow и свойство closed, чтобы убедиться, что окно еще не закрыто.

if (secondwindow && !secondwindow.closed)
secondwindow.close();

Этот пример сильно зависит от правила сокращенной оценки выражений, поскольку, если переменная secondwindow не конкретизирована, попытка доступа к свойству closed генерирует сообщение об ошибке. Следующий простой пример демонстрирует вариант безопасного использования методов и свойств объекта Window, о которых шла речь.

Кроме проверки на существование окон перед их закрытием, следует помнить о том, что нельзя закрывать окна, которые вы не создавали, — особенно, если сценарию не предоставлены соответствующие права системой обеспечения безопасности. Кроме того, могут возникать трудности с закрытием главного окна браузера. Так, если в сценарии, выполняющемся в главном окне браузера, использовать оператор типа window.close() ;


добавить комментарий
(без перезагрузки и регистрации)


10 случайных разделов

Что ищем на сайте ?


Примеры кода на сайте







@ 2008-2011 Amber
При использовании материалов ссылка на сайт обязательна
Яндекс.Метрика