Оглавление

17.2. Объект window. Вывод сообщения в строку состояния Web-браузера

Объект window — это объект самого верхнего уровня, представляющий сам Web-браузер. Объект window подразумевается по умолчанию, поэтому указывать ссылку на объект не обязательно.


Свойства объекта window:
□  defauitstatus — сообщение, выводимое по умолчанию в строке состояния; 

     window.defaultStatus = "Текст по умолчанию в строке состояния";

 

□  status — сообщение, отображаемое в строке состояния; 

     window.status = "Текст в строке состояния";

 

□  length — число фреймов, отображаемых в данном окне. Для примера создадим документ с фреймами и выведем в диалоговом окне количество фреймов. Для этого создадим основной документ с фреймовой структурой (листинг 43) и два файла — docl.html (листинг 44) и doc2.html (листинг 45).

 

Листинг 3.43. HTML-документ, описывающий фреймовую структуру (test.html)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
                "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Заголовок</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<frameset rows="100, *">
 <frame src="doc1.html" name="frame1">
 <frame src="doc2.html">
</frameset>
</html>

 

Листинг 3.44. HTML-документ фрейма 1 (doc1.html)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
         "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Заголовок</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<h3>Фрейм 1</h3>
</body>
</html>

 

Листинг 3.45. HTML-документ фрейма 2 (doc2.html)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
         "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Заголовок</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<h3>Фрейм 2</h3>
<script type="text/javascript">
<!--
window.alert(top.length); // Выведет 2
window.alert(window.length); // Выведет 0
window.alert(top.frame1.length); // Выведет 0
//-->
</script>
</body>
</html>

 

Откроем в Web-браузере файл test.html. В итоге появится окно с количеством фреймов основного окна (2). Обратите внимание, как мы обратились к свойству length объекта window из документа фрейма 2:
top.length
Что же такое top? Это свойство объекта window, возвращающее ссылку на самое верхнее родительское окно. Закроем диалоговое окно с первым сообщением. После этого появится еще одно окно с числом 0, которое
возвращается СВОЙСТВОМ window, length.

 

Но почему, указав объект window, представляющий окно Web-браузера, мы получили количество фреймов HTML-документа doc2.html? Все дело в том, что в этом случае window — это не объект, а лишь свойство одноименного объекта, которое возвращает ссылку на текущее окно. Все свойства, возвращающие ссылку, описаны далее. Последнее диалоговое окно, также отображающее 0, демонстрирует возможность доступа к фрейму 1 из фрейма 2:
top.frame1.length

 

□  parent — ссылка на родительское окно;
□  self — ссылка на текущее окно;
□  top — ссылка на самое верхнее родительское окно;
□  window — то же, что self, ссылка на себя;
□  opener — ссылка на окно, открывшее данное;
□  name — имя окна или фрейма;
□  closed — позволяет определить, открыто или закрыто окно. Возвращает true — если открыто, и false — если закрыто;
□  screenLeft — горизонтальная координата левого верхнего угла окна. В Web-браузере Firefox нет свойства screenLeft. Вместо него используется свойство screenX;
□  screenTop — вертикальная координата левого верхнего угла окна. В Web-браузере Firefox нет свойства screenTop. Вместо него используется свойство screenY;
□  clientInformation — браузер (объект navigator).

 

В некоторых Web-браузерах (например, в Firefox и Opera) определены дополнительные свойства:
□  pagexoffset — число пикселов, на которое документ прокручен вправо. В Web-браузере Internet Explorer нет свойства pagexof f set. Вместо него можно использовать свойство scroiiLef t объекта document;
□  pageYOffset — число пикселов, на которое документ прокручен вниз. В Web-браузере Internet Explorer нет свойства pageYOffset. Вместо него можно использовать свойство scrollTop объекта document. Пример:


  // Для Firefox и некоторых других Web-браузеров
  var msg = "pageXOffset " + window.pageXOffset + "\n";
  msg += "pageYOffset " + window.pageYOffset + "\n";
  // Для IE >= 6, если есть тег <!DOCTYPE>
  msg += "scrollLeft " + document.documentElement.scrollLeft;
  msg += "\n"+"scrollTop "+document.documentElement.scrollTop;
  // Для IE < 6 и для IE >= 6, если нет тега <!DOCTYPE>
  msg += "\n" + "scrollLeft " + document.body.scrollLeft + "\n";
  msg += "scrollTop " + document.body.scrollTop;
  window.alert(msg);

□ innerwidth — ширина окна в пикселах. Размер не включает ширину полос прокрутки. В Web-браузере Internet Explorer нет свойства inner-width. Вместо него можно использовать свойство clientwidth объекта document;
innerHeight — высота окна в пикселах. Размер не включает высоту строки меню и панели инструментов. В Web-браузере Internet Explorer нет свойства innerHeight. Вместо него можно использовать свойство clientHeight объекта document;
outerwidth — полная ширина окна в пикселах, включая ширину полос прокрутки. В Web-браузере Internet Explorer нет свойства outerwidth;
outerHeight — полная высота окна в пикселах, включая высоту строки меню и панели инструментов. В Web-браузере Internet Explorer нет свойства outerHeight.

 

Свойства, предназначенные для назначения обработчиков событий:
onload — вызывается после загрузки Web-страницы;
onunioad — вызывается непосредственно перед выгрузкой документа;
onscroii — вызывается  при  прокручивании содержимого  окна или фрейма;
onresize — вызывается при изменении размеров окна;
onblur — вызывается, когда окно теряет фокус;
onfocus — вызывается, когда окно получает фокус;
onerror — вызывается при возникновении ошибки в коде JavaScript. В качестве значения указывается ссылка на функцию следующего формата:
   function <Назвакие>(<Описание>, <URL>, <Номер  строки>)    {
   // return true; // Если ошибка обработана
   // return  false; // Если ошибка не обработана
   }
Внутри функции необходимо вернуть значение true, если ошибка обработана, или false — в противном случае. Пример:      

   window.onerror = function(e, u, n) {

     window.alert(e + "\n" + u + "\n" + n + "\n");  

     return true; // Якобы обработали }


Объекты, являющиеся свойствами объекта window:
□  document — объект document (см. разд. 17.10);
□  event — объект event. Этот объект уже был рассмотрен нами при изучении событий (см. разд. 16.10);
□  history — объект history (см. разд. 17.9);
□  location — объект location (см. разд. 17.8);
□  navigator — объект navigator (см. разд. 17.6);
□  screen — объект screen (см. разд. 17.7). Методы объекта window:
□  alert() отображает окно сообщения (см. разд. 4.1);

□   confirm() выдает окно подтверждения (см. разд. 4.2);

□  prompt() показывает окно с полем ввода (см. разд. 4.3);
□   open() открывает новое окно Web-браузера (см. разд. 17.3);
□  showModaiDialog() отображает модальное диалоговое окно (см. разд. 17.4);
□  close() закрывает окно;
□  blur() удаляет фокус с окна и генерирует событие onblur;

□  focus() переносит фокус на текущее окно и генерирует событие onfocus;
□  navigate(<URL-адрес>) загружает в окно страницу, адрес которой указан в параметре. В Web-браузере Firefox нет метода navigate();
□  stop()  прерывает загрузку страницы. В Web-браузере Internet Explorer нет метода stop();
□  resizeBy (<x>, <у>) изменяет размеры окна на заданное число пикселов;
□  resizeTo (<Ширина>; <Высота>) устанавливает размеры окна в пикселах;
□  moveBy (<х>, <у>) перемещает окно (по х — вправо, по у — вниз, а если указаны отрицательные значения, то наоборот);
□  moveTo(<x>, <y>) перемещает окно, чтобы верхний левый угол попал в заданную точку с координатами х и у;
□   scroilBy (<x>, <у>) прокручивает окно на заданные расстояния;
□  scroiiTo(<х>, <у>) прокручивает содержимое окна в точку с координатами х и у.
Кроме того, имеются 4 метода для работы с таймерами, которые мы рассмотрим в разд. 17.5.

 

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити