2.14. Примеры манипулирования окнами

Как это не покажется странным, но в наших простых примерах мы уже начали манипулировать окнами. Открытие окна-пердупреждения - это операция над объектом "окно". Определим свойства объекта "окно", методы изменения этих свойств и события,

Методы

Методы позволяют нам создать на экране видимое окно, закрыть окно и проделать с ним другие операции. С методом window.alert мы уже знакомы. Методы window.confirm и window.prompt используются для получения ответов от пользователя:

Пример 2.16. Использование методов Alert, Prompt, Confirm

	<HTML>
	<HEAD>
	<title>Window simple example</title>
	</HEAD>
	<BODY>
	<center>
	<h1>Simple window methods</h1>
	<hr>
	</center>
	<ul>
	<li><a href="javascript:window.alert('Attention!!! press the button to continue.')">Метод Alert.</a>
	<li><a href="javascript:window.status=window.confirm('Answer yes or no.');void(0);">Метод Confirm.</a>
	<li><a href="javascript:window.status=window.prompt('Type string here:','');void(0);">Метод Prompt.</a>
	</ul>
	</BODY>
	</HTML>

В данном примере при вызове метода confirm появляется окно с просьбой подтверждения некоторого действия, при использовании метода prompt - окно с приглашением ввести информацию в поле ввода. В двух последних случаях если не указать функ

Однако, следует признать, что рассмотренные выше методы используются крайне редко. А тем более в приведенном здесь контексте, поэтому поспешим рассмотреть методы открытия и закрытия окна.

Открыть окно можно используя метод open:

Пример 2.17. Метод window.open

	<HTML>
	<HEAD>
	<title>Window simple example</title>
	</HEAD>
	<BODY>
	<center>
	<h1>Open window methods</h1>
	<hr>
	</center>
	Если выбрать гипертекстовую ссылку
	<a href="javascript:window.open('simple8.htm','example','scrollbars,
	resizable,width=300,height=200');void(0);">Открыть окно</a>, то 
	будет открыто новое окно. Чаще всего этот прием используют
	при создании контекстно зависимых меню.
	</BODY>
	</HTML>

В данном случае при выборе гипертекстовой ссылки будет открыто окно шириной 300 пикселей и высотой 200 пикселей, в окне не будет никаких стандартных меню навигатора, и в окно будет загружен документ simple8.html. Метод open позволяет та

Документ simple8.htm в свою очередь содержит код, который позволяет закрыть окно, открытое в примере 2.17:

Пример 2.18. Закрыть текущее окно

	<HTML>
	<HEAD>
	<title>Window simple example</title>
	</HEAD>
	<BODY>
	<center>
	<h1>Close window methods</h1>
	<hr>
	</center>
	Если выбрать гипертекстовую ссылку 
	<a href="javascript:window.close();void(0);">
	Закрыть окно</a>, то 
	данное окно будет закрыто.
	</BODY>
	</HTML>

В данном примере в качестве гипертекстовой ссылки используется ссылка на метод widow.close(), который закрывает текущее окно. На применении методов open и close построен принцип построения help. По методу open открывается окно подсказки

Рассмотрим еще один метод, связанный с окном - метод scroll. Данный метод позволяет организовать прокрутку текста в окне.

Пример 2.19. Прокрутка текста в окне навигатора

	<HTML>
	<HEAD>
	<title>Scroll text</title>
	</HEAD>
	<BODY>
	<center>
	<h1>Прокрутка текста в окне навигатора</h1>
	<hr>
	[<a href="javascript:for(i=0;i<80;i++)
	{window.scroll(0,i*10)};void(0);">Прокрутить текст</a>]
	<hr>
	</center>
	Вообще говоря, проверить тип программы просмотра можно на сервере
	протокола HTTP и передать программе просмотра уже готовую страницу 
	без условной генерации ее
	...
	 
	<hr>
	<center>[<a href=#top>Вернуться в начало</a>]</center>
	</BODY>
	</HTML>

От метода прокрутки мы перейдем теперь к методу, который позволит нам прокручивать документ более равномерно - это метод setTimeout. Большинству пользователей Web он знаком по бегущим строкам в поле статуса программы-навигатора. Метод s

Пример 2.20. Прокрутка текста по таймеру

	<HTML>
	<HEAD>
	<title>Scroll text</title>
	<script language=JavaScript>
	<!-- 
	i=0;flag=0;start_stop=0;
	function my_scroll()
	         {
	          if(start_stop==1)
	            {
	             window.scroll(0,i*10);
	             if(flag==0) i++;
	             if(flag==1) i--;
	             if(i>80) {i=80;flag=1;}
	             if(i<0) {i=0;flag=0;}
	            }
	          setTimeout("my_scroll()",500);
	         }
	function kuku()
	         {
	          if(start_stop == 0) 
	            {
	             start_stop =1;
	            }
	          else
	            {
	             start_stop =0;
	            }
	         }
	// -->
	</script>
	</HEAD>
	<BODY onLoad=my_scroll()>
	<center>
	<h1>Прокрутка текста в окне навигатора</h1>
	<hr>
	[<a href="javascript:kuku();void(0);">Запустить/Остановить</a>]
	<hr>
	</center>
	Вообще говоря, проверить тип программы просмотра можно на сервере
	протокола HTTP и передать программе просмотра уже готовую страницу 
	без условной генерации ее
	...
	<hr>
	<center>[<a href=#top>Вернуться в начало</a>]</center>
	</BODY>
	</HTML>

В данном примере мы не стали писать текст программ в самих гипертекстовых ссылках и вынесли его в заголовок документа. В данном случае это облегчает чтение текста и отладку программы. Текст прокручивается через каждые 500 миллисекунд, ч

Следует подробно остановиться на особенностях исполнения метода setTimeout. Особенно в части запуска и останова процедуры прокрутки. Рассматривать алгоритм ее исполнения лучше всего в контексте многопоточных или многозадачных систем. Фу

В нашем примере новый процесс поток порождается всякий раз, как интерпретатор достигает метода setTimeout, а уничтожается, когда интерпретатор доходит до последнего оператора этого потока. Такой алгоритм выполнения заставляет расположит

Во второй версии навигатора данная функция была реализована не очень аккуратно, что приводило к переполнению программного стека и краху программы-навигатора.

Назад | Содержание | Вперед


Comments: info@citmgu.ru
Copyright © CIT



Сайт создан в системе uCoz