Клиентский JavaScript 1.3

         

Обращение к свойствам, методам и обработчикам


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

  • self или window: self и window являются синонимами текущего окна, и Вы можете использовать их по выбору для обращения к текущему окну. Например, Вы можете закрыть текущее окно, вызвав window.close() или self.close().
  • top или parent: top и parent также являются синонимами, которые могут использоваться как имена окна.
    top можно использовать для любого окна; оно ссылается на самое верхнее окно Navigator'а.
    parent можно использовать для фрэйма; оно ссылается на окно с тэгом frameset, содержащее данный фрэйм. Например, для фрэйма frame1, оператор parent.frame2.document.bgColor="teal" изменяет фон фрэйма frame2 на teal, где frame2 это дочерний фрэйм текущего frameset.
  • Имя переменной окна: переменная окна это переменная, специфицированная при открытии окна. Например, msgWindow.close() закрывает окно msgWindow.
  • Отсутствие имени окна: поскольку существование текущего окна подразумевается, Вы не обязаны обращаться к окну по имени, когда вызываете его методы и присваиваете значения свойств. Например, close() закрывает текущее окно. Однако, когда Вы открываете или закрываете окно обработчиком события, Вы обязаны специфицировать window.open() или window.close() вместо простого open() или close(). Из-за области видимости static-объектов в JavaScript, вызов close() без специфицирования имени объекта эквивалентен document.close().

Дополнительно об этих техниках см. объект window в книге Клиентский JavaScript. Справочник.

Пример 1: обращение к текущему окну. Следующий оператор ссылается на форму musicForm в текущем окне. Оператор выводит диалог alert, если переключатель/checkbox отмечен.

if (document.musicForm.checkbox1.checked) {
alert('The checkbox on the musicForm is checked!')}

Пример 2: обращение к другому окну. Следующие операторы ссылаются на форму musicForm, находящуюся в окне checkboxWin. Операторы определяют, выбран ли checkbox, выбирают checkbox, определяют, выбрана ли вторая опция объекта Select, и выбирают вторую опцию объекта Select. Даже если значения объектов изменяются в другом окне (checkboxWin), текущее окно остаётся активным: отметка переключателя и выбор selection-опции не передают фокус окну.

// определить, отмечен ли checkbox
if (checkboxWin.document.musicForm.checkbox2.checked) {
   alert('The checkbox on the musicForm in checkboxWin is checked!')}// отметить checkbox
checkboxWin.document.musicForm.checkbox2.checked=true// определить, выбрана ли опция объекта Select
if (checkboxWin.document.musicForm.musicTypes.options[1].selected)
   {alert('Option 1 is selected!')}// выбрать опцию объекта Select
checkboxWin.document.musicForm.musicTypes.selectedIndex=1

Пример 3: обращение к фрэйму в другом окне. Следующий оператор обращается к фрэйму frame2, который находится в окне window2. Оператор изменяет цвет фона frame2 на violet. Имя фрэйма, frame2, обязано быть специфицировано в тэге FRAMESET, создающем набор фрэймов.

window2.frame2.document.bgColor="violet"



Содержание раздела