русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Методы объекта window


Дата добавления: 2013-12-23; просмотров: 630; Нарушение авторских прав


Что можно сделать с окном? Открыть (создать), закрыть (удалить), положить его поверх всех других открытых окон (передать фокус). Кроме того, можно управлять свойствами окна и свойствами подчиненных ему объектов. Сосредоточимся на простых и наиболее популярных методах управления окнами.

alert()

Метод alert() позволяет выдать окно предупреждения, имеющее единственную кнопку "OK":

<A HREF="javascript:window.alert('Внимание')">Повторите запрос!</A>

Нужно лишь иметь в виду, что сообщения выводятся системным шрифтом, следовательно, для получения предупреждений на русском языке нужна локализованная версия ОС.

confirm()

Метод confirm() позволяет задать пользователю вопрос, на который тот может ответить либо положительно (нажав кнопку "OK"), либо отрицательно (нажав кнопку "Отмена" или "Cancel", либо просто закрыв окно запроса). В соответствии с действиями пользователя метод confirm()возвращает значение true либо false. Пример:

<FORM NAME=f><INPUT TYPE=button NAME=b VALUE="Нажмите эту кнопку"onClick="if(window.confirm('Вы знаете JavaScript?')) document.f.b.value='Да. Спросить еще?';else document.f.b.value='Нет. Спросить еще?';"></FORM>

Все ограничения для сообщений на русском языке, которые были описаны для метода alert(), справедливы и для метода confirm().

prompt()

Метод prompt() позволяет принять от пользователя cтроку текста. Синтаксис его таков:

prompt("Строка вопроса","Строка ответа по умолчанию")

Когда пользователь введет свой ответ (либо оставит неизменным ответ по умолчанию) и нажмет кнопку OK, метод prompt() возвратит полученную строчку в качестве значения, которое можно далее присвоить любой переменной и потом разбирать ее в JavaScript-программе.



<FORM NAME=f><INPUT TYPE=button VALUE="Открыть окно ввода" onClick="document.f.e.value= window.prompt('Введите сообщение','Сюда');"><INPUT SIZE=30 NAME=e></FORM>

window.open()

Метод open() предназначен для создания новых окон . В общем случае его синтаксис выглядит следующим образом:

myWin = window.open("URL","имя_окна","параметр=значение,параметр=значение,...", заменить);

Первый аргумент задает адрес страницы, загружаемой в новое окно (можно оставить пустую строку, тогда окно останется пустым). Второй аргумент задает имя окна, которое можно будет использовать в атрибуте TARGET контейнеров <A> и <FORM>. В качестве значений допустимы также зарезервированные имена _blank, _parent, _self, _top, смысл которых такой же, как у аналогичных значений атрибутаTARGET. Если имя_окна совпадает с именем уже существующего окна (или фрейма), то новое окно не создается, а все последующие манипуляции с переменной myWin будут применяться к этому окну (или фрейму).

Третий аргумент есть не содержащая пробелов строка, представляющая собой список параметров и их значений, перечисленных через запятую. Указание каждого из параметров необязательно, однако значения по умолчанию могут зависеть от браузера, поэтому всегда указывайте явно те параметры, на которые рассчитываете. Возможные параметры перечислены в таблице 4.3. Вместо значений yes и noможно использовать 1 и 0. Последний аргумент " заменить " является необязательным, принимает значения true и false и означает: следует ли новый URL добавить в history в качестве нового элемента или заменить им последний элемент history.

Метод window.open() возвращает ссылку на вновь открытое окно, т.е. объект класса Window. Его можно присвоить переменной (что мы и сделали выше), с тем чтобы потом можно было управлять открытым окном (писать в него, читать из него, передавать и убирать фокус, закрывать).

Таблица 4.3. Параметры метода window.open()
Параметр Значения Описание
width число Ширина окна в пикселах (не менее 100 )
height число Высота окна в пикселах (не менее 100 )
left число Расстояние от левого края экрана до левой границы окна в пикселах
top число Расстояние от верхнего края экрана до верхней границы окна в пикселах
directories yes / no Наличие у окна панели папок (Netscape Navigator)
location yes / no Наличие у окна поля адреса
menubar yes / no Наличие у окна панели меню
resizable yes / no Сможет ли пользователь менять размер окна
scrollbars yes / no Наличие у окна полос прокрутки
status yes / no Наличие у окна поля статуса
toolbar yes / no Наличие у окна панели инструментов

Приведем два примера открытия нового окна:

<FORM><INPUT TYPE=button VALUE="Простое окно" onClick="window.open('', 'test1', 'directories=no,height=200,location=no,'+ 'menubar=no,resizable=no,scrollbars=no,'+ 'status=no,toolbar=no,width=200');"> <INPUT TYPE=button VALUE="Сложное окно" onClick="window.open('', 'test2', 'directories=yes,height=200,location=yes,'+ 'menubar=yes,resizable=yes,scrollbars=yes,'+ 'status=yes,toolbar=yes,width=200');"></FORM>

При нажатии кнопки "Простое окно" получаем окно со следующими параметрами:

  • directories=no - окно без панели папок
  • height=200 - высота 200 px
  • location=no - поле адреса отсутствует
  • menubar=no - без меню
  • resizable=no - размер окна изменять нельзя
  • scrollbars=no - полосы прокрутки отсутствуют
  • status=no - статусная строка отсутствует
  • toolbar=no - системные кнопки браузера отсутствуют
  • width=200 - ширина 200 px

При нажатии кнопки "Сложное окно" получаем окно, где:

  • directories=yes - окно с панелью папок
  • height=200 - высота 200 px
  • location=yes - поле адреса есть
  • menubar=yes - меню есть
  • resizable=yes - размер изменять можно
  • scrollbars=yes - есть полосы прокрутки
  • status=yes - статусная строка есть
  • toolbar=yes - системные кнопки браузера есть
  • width=200 - ширина 200 px

window.close()

Метод close() позволяет закрыть окно. Чаще всего возникает вопрос, какое из окон, собственно, следует закрыть. Если необходимо закрыть текущее, то:

window.close();self.close();

Если мы открыли окно с помощью метода window.open(), то из скрипта, работающего в новом окне, сослаться на окно-родитель можно с помощью window.opener (обратите внимание, здесь windowссылается на объект нового, созданного окна, т.к. оно использовано в скрипте, работающем в новом окне). Поэтому, если необходимо закрыть родительское окно, т.е. окно, из которого было открыто текущее, то:

window.opener.close();

Если необходимо закрыть произвольное окно, то тогда сначала нужно получить его идентификатор:

id=window.open();...id.close();

Как видно из последнего примера, закрывают окно не по имени (значение атрибута TARGET тут ни при чем), а используют указатель на объект.

Методы focus() и blur()

Метод focus() применяется для передачи фокуса в окно, с которым он использовался. Передача фокуса полезна как при открытии окна, так и при его закрытии, не говоря уже о случаях, когда нужно выбирать окна. Рассмотрим пример.

Открываем окно и, не закрывая его, снова откроем окно с таким же именем, но с другим текстом. Новое окно не появилось поверх основного окна, так как фокус ему не был передан. Теперь повторим открытие окна, но уже с передачей фокуса:

<HTML><HEAD><SCRIPT>function myfocus(a){ myWin = window.open('','example','width=300,height=200'); // открываем окно и заводим переменную с указателем на него. // Если окно с именем 'example' существует, то новое окно не создается, // а открывается поток для записи в имеющееся окно с именем 'example' if(a==1) { myWin.document.open(); //открываем поток ввода в уже созданное окно myWin.document.write('<H1>Открыли окно в первый раз'); //Пишем в этот поток } if(a==2) { myWin.document.open(); myWin.document.write('<H1>Открыли окно во второй раз'); } if(a==3) { myWin.focus(); // передаем фокус, а затем выполняем те же действия, // что и в предыдущем случае myWin.document.open(); myWin.document.write('<H1>Открыли окно в третий раз'); } myWin.document.write('</H1>'); myWin.document.close();}</SCRIPT></HEAD><BODY><a href="javascript:myfocus(1);">Откроем окно и напишем в него что-то</a>,<BR><BR><a href="javascript:myfocus(2);">напишем в него же что-то другое, но фокус не передадим</a>,<BR><BR><a href="javascript:myfocus(3);">опять что-то напишем в него, но сперва передав ему фокус</a>.</BODY></HTML>

Пример 4.1. Передача фокуса в новое окно (html, txt)

Поскольку мы пишем содержание нового окна из окна старого (родителя), то в качестве указателя на объект используем значение переменной myWin.

Чтобы увести фокус из определенного окна myWin, необходимо применить метод myWin.blur(). Например, чтобы увести фокус с текущего окна, где выполняется скрипт, нужно вызвать window.blur(). Эффект будет тот же, как если бы пользователь сам свернул окно нажатием кнопкив правом верхнем углу окна.

Метод setTimeout()

Метод setTimeout() используется для создания нового потока вычислений, исполнение которого откладывается на время (в миллисекундах), указанное вторым аргументом:

idt = setTimeout("JavaScript_код",Time);

Типичное применение этой функции - организация периодического изменения свойств объектов. Например, можно запустить часы в поле формы:

<HTML><HEAD><SCRIPT>var Chasy_idut=false; function myclock(){ if(Chasy_idut) { d = new Date(); document.f.c.value = d.getHours()+':'+ d.getMinutes()+':'+ d.getSeconds(); } setTimeout("myclock();",500);} function FlipFlag(){ Chasy_idut = !Chasy_idut; document.f.b.value = (Chasy_idut)? 'Остановить' : 'Запустить';}</SCRIPT></HEAD><BODY onLoad="myclock();"><FORM NAME=f>Текущее время:<INPUT NAME=c size=8><INPUT TYPE=button name=b VALUE="Запустить"onClick="FlipFlag();"></FORM></BODY></HTML>

Пример 4.2. Часы с использованием setTimeout() (html, txt)

Обратите внимание, что поток порождается (т.е. вызывается setTimeout() ) всегда, даже в том случае, когда мы остановили показ часов. Если бы он создавался только при значении переменнойChasy_idut = true, то часы бы просто не запустились, так как в самом начале исполнения скрипта мы установили var Chasy_idut = false. Но даже если бы мы установили в начале var Chasy_idut = true, то часы бы запустились при загрузке страницы, а после остановки поток бы исчез, и при последующем нажатии кнопки "Запустить" часы продолжали бы стоять.

Метод clearTimeout()

Метод clearTimeout() позволяет уничтожить поток, вызванный методом setTimeout() . Очевидно, что его применение позволяет более эффективно распределять ресурсы вычислительной установки. Для того чтобы использовать этот метод в примере с часами, нам нужно модифицировать функции и форму:

<HTML><HEAD><SCRIPT>var Chasy_idut=false;var potok; function StartClock(){ d = new Date(); document.f.c.value = d.getHours()+':'+ d.getMinutes()+':'+ d.getSeconds(); potok = setTimeout('StartClock();',500); Chasy_idut=true;} function StopClock(){ clearTimeout(potok); Chasy_idut=false;}</SCRIPT></HEAD><BODY><FORM NAME=f>Текущее время:<INPUT NAME=c size=8><INPUT TYPE=button VALUE="Запустить" onClick="if(!Chasy_idut) StartClock();"><INPUT TYPE=button VALUE="Остановить" onClick="if(Chasy_idut) StopClock();"></FORM></BODY></HTML>

Пример 4.3. Часы с использованием setTimeout() и clearTimeout() (html, txt)

В данном примере для остановки часов используется метод clearTimeout(). При этом, чтобы не порождалось множество потоков, проверяется значение указателя на объект потока.

Методы setInterval() и clearInterval()

В предыдущих примерах для того, чтобы поток запускался снова и снова, мы помещали в функцию в качестве последнего оператора вызов метода setTimeout(). Однако в JavaScript для этих целей имеются специальные методы. Метод setInterval("код_JavaScript",time) выполняет код_JavaScript с периодом раз в time миллисекунд. Возвращаемое значение - ссылка на созданный поток. Чтобы остановить поток, необходимо вызвать метод clearInterval(поток).



<== предыдущая лекция | следующая лекция ==>
Методы объекта location | События объекта window


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.087 сек.