logo
JavaScript

</FORM>

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

· directories=no - окно без меню;

· height=200 - высота 200 px;

· location=no - поле location отсутствует;

· menubar=no - без меню;

· resizable=no - размер изменять нельзя;

· scrollbars=no - полосы прокрутки отсутствуют;

· status=no - статусная строка отсутствует;

· toolbar=no - системные кнопки браузера отсутствуют;

· width=200 - ширина 200.

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

· directories=yes - окно с меню;

· height=200 - высота 200 px;

· location=yes - поле location есть;

· menubar=yes - меню есть;

· resizable=yes - размер изменять можно;

· scrollbars=yes - есть полосы прокрутки;

· status=yes - статусная строка есть;

· toolbar=yes - системные кнопки браузера есть;

· width=200 - ширина 200.

2.5.5 window.close()

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

window.close();

self.close();

Если необходимо закрыть родительское окно, т.е. окно, из которого было открыто текущее, то:

window.opener.close();

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

id=window.open();

...

id.close();

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

2.5.6 window.focus()

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

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

Листинг 2.5

function myfocus(a)

{

id = window.open("","example", "scrollbars,width=300,

height=200");

//открываем окно и заводим переменную с указателем на него

//если окно с таким именем существует, то новое окно не

//создается,а открывается поток для записи в окно с этим именем

if(a==1)

{

id.document.open();

//открываем поток ввода в уже созданное окно

id.document.write("<CENTER>>Открыли окно в первый раз");

//Пишем в этот поток

}

if(a==2)

{

id.document.open();

id.document.write("<CENTER>Открыли окно во второй раз");

}

if(a==3)

{

id.focus();

//передаем фокус, затем выполняем те же действия,

//что и в предыдущем случае

id.document.open();

id.document.write("<CENTER>Открыли окно в третий раз");

}

id.document.write("<FORM><INPUT TYPE=button

onClick=window.close(); VALUE=Закрыть окно></CENTER>");

id.document.close();

}

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

2.5.7 window.setTimeout()

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

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

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

Листинг 14.6

var flag=0;

var idp=null;

function myclock()

{

if(flag==1)

{

d = new Date();

window.document.c.f.value = d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();

}

idp=setTimeout("myclock();",500);

}

function flagss()

{

if(flag==0) flag=1; else flag=0;

}

...

<FORM NAME=c>Текущее время:

<INPUT NAME=f size=8><INPUT TYPE=button VALUE="Start/Stop"

onClick="flagss();myclock();">