![]() |
|
||||||||||||||
|
|
|
|
Внешние объекты всегда доступны в любом месте скрипта. В отличие от встроенных объектов языка, внешние объекты не надо инициализировать или создавать их экзепляры. Набор внешних объектов и их свойства могут отличаться в разных браузерах, поэтомы мы рассмотрим только основные. Объект window Объект window является корневым в иерархии внешних объектов. window содержит в себе ссылки на текущую страницу (объект document), историю перемещений (объект history), все вложенные фреймы, если таковые есть (объект frames), и ещё несколько объектов, которые мы рассмотрим ниже. Основное назначение window - создание и управление окном браузера. Под окном в JavaScript понимается контейнер, в который загружается документ. В зависимости от браузера окно может ассоциироваться с отдельным окном или с отдельной вкладкой в общем окне. В таблице приведены основные свойства и методы объекта window:
Рассмотрим пример использования объекта window: <script type="text/javascript" language="javascript"> var wnd; // первая функция открытия окна function openNew() { // Создаём новое пустое окно // размером 300х300 пискелей wnd = window.open('', '', 'width=300, height=300'); // Вписываем в это окно строку wnd.document.open(); wnd.document.write( "<html><head><title>Всплывающее окно</title></head> <body>самозакрывающееся окно</body>"); wnd.document.close(); // Указываем строку для отображения в статусной строке wnd.status = 'Сообщение в строке статуса'; // Взводим таймер на пять секунд window.setTimeout("closeWindow();", 5000); } // функция закрытия окна function closeWindow() { if(wnd) wnd.close(); } // вторая функция открытия окна function openFullScreen() { // Создаём новое пустое окно // в полноэкранном режиме без полос прокрутки wnd = window.open('', '', 'fullscreen=yes, scrollbars=no'); // Вписываем в это окно строку wnd.document.open(); wnd.document.write( "<html><head><title>Всплывающее окно</title></head> <body>самозакрывающееся полноэкранное окно</body>"); wnd.document.close(); // Взводим таймер на десять секунд window.setTimeout("closeWindow();", 10000); } function openSized() { window.open(window.location.href); } </script> ... <input type="button" onclick="openNew()" value="Создать простое окно" /><br /> <input type="button" onclick="openFullScreen()" value="На полноэкранное окно" /><br /> <input type="button" onclick="closeWindow()" value="Закрыть дочернее окно" /><br /> ... Этот скрипт в зависимости от нажатой кнопки открывает либо окно размером 300х300 пикселей, либо окно, развёрнутое на весь экран. После создания окна в него записывается текстовая строка. Как видите, пользоваться объектом window достаточно просто, главное - не злоупортеблять, т.к. средствами защиты от спама и назойливой рекламы в большинстве браузеров молча блокируют всплывающие окна. Объект document Объект document представляет собой документ (HTML-страницу), загруженный в окно. В предыдущем примере мы уже использовали метод write() этого объекта для заполнения пустого документа. Все основные методы и свойства объекта перечистелы в таблице:
Вот пример использования объекта document:
<head>
<script type="text/javascript" language="javascript">
var stepLink = 0;
var stepBody = 0;
var timerLink;
var timerBody;
// функция раскраски ссылок
function colorizeLink()
{
if(stepLink==0)
window.document.linkColor = "#ff0000";
else window.document.linkColor = "#0000ff";
stepLink = (stepLink == 0)? 1:0;
timerLink =
window.setTimeout("colorizeLink();", 1000);
}
//
// функция раскраски фона
function colorizeBody()
{
if(stepBody==0)
window.document.bgColor = '#ccff00';
else window.document.bgColor = '#00ffcc';
stepBody = (stepBody == 0)? 1:0;
timerBody =
window.setTimeout("colorizeBody();", 1300);
}
//
// функция инициализации
function initTimers()
{
timerLink =
window.setTimeout("colorizeLink();", 1000);
timerBody =
window.setTimeout("colorizeBody();", 1300);
var elm = document.getElementById('lastModified');
if(elm)
elm.innerHTML = document.lastModified;
}
</script>
</head>
<body onload="initTimers()">
<div id="lastModified">Неизвестно</div>
<a href="123.htm">первая ссылка</a><br />
<a href="456.htm">вторая ссылка</a><br />
</body>
В этом скрипте по таймеру меняется цвет фона и цвет активной ссылки. Естественно, использовать такой эффект на своей странице не стоит, т.к. у посетителя глаза устанут раньше, чем он приступит к чтению статьи или поста. Более приемлемым является применение эффекта "день-ночь", смысл которого - изменение яркости или цвета фона в зависимости от времени суток. Пример такого скрипта вы без труда найдёте в интернете. Объект location Этот объект предоставляет свойства и методы для управления адресом текущей страницы.
Если вы обратились по адресу: http://server.com:8080/catalog/2009/index.htm?id=122#descr то значения свойств объекта location будет следующими:
С помощью объекта location легко осуществляется перенаправление пользователя на другую страницу или, наоборот, запрет возврата на предыдущую страницу.
// перенапрвление
document.location.href = 'новый адрес страницы';
// или
document.assign('новый адрес')
// запрет возврата
document.replace('новый адрес')
Запрет возврата сводится к тому, что адрес страницы не сохраняется в истории браузера. Чаще всего это необходимо, когда окно служит для выбора параметров и создано в виде диалога (например, диалог выбора цвета или шрифта в онлайн-редакторе). Такие страницы сами по себе бесполезны, т.к. должны создаваться родительским окном и ему же возвращать выбранное значение, а значит и запоминать их в истории незачем. Объект history Объект history предназначен для работы с историей браузера. Все страницы, которые вы открываете в окне, фиксируются в объекте history. С помощью этого объекта можно легко перемещаться по списку посещённых страниц и загружать необходимые. Единственное ограничение - нельзя обратиться к истории посторонней страницы, т.е. вся история стирается как только вы закрыли окно. History имеет всего одно свойство - length, определяющее количество посещённых страниц. При переходам по истории необходимо следить, чтобы индекс запрашиваемого элемента не выходил за пределы длины списка. Для перемещения по списку предназначены методы объекта history, их всего три:
Очевидно, что метдо back() эквивалентен вызову go(-1), а метод forward() - вызову go(1). Вот пример использования объекта history: // переходо к элементу с индексом 4 if(window.history.length > 3) window.history.go(4); Объект navigator Этот объект содержит информацию о параметрах браузера, таких как: производитель, версия, поддержка cookie и других.
Вот таким скриптом можно быстро определить параметры собственного браузера: <script type="text/javascript" language="javascript"> alert( Объект navigator в основном используется при написании кроссбраузерных скриптов, т.к. позволяет определить какие блоки кода в каком браузере исполнять. К сожалению, использование объекта navigator не даёт стопроцентрой гарантии при определении типа браузера. Cвязано это с тем, что любой браузер (кроме, наверное, IE) позволяет легко изменить строки User-Agent на что угодно, в том числе на подпись браузера другого типа. Поэтому более точным будет определение типа браузера по наличию или отсутствию объектов, специфичных для конкретной платформы. О кроссбраузерности написано уже немало книг и статей, поэтомы мы не будет глубоко вдаваться в эту тему. Объект event Объект event содержит описание последнего произошедшего события. Структуру и способы применения этого объекта мы подробно рассматривали в уроке "События клавиатуры и мыши". Объект screen Screen является глобальным объектом, одинаковым для всех скриптов и всех окон браузера. Он описывает возможности используемого устройства отображения, например, монитора. Объект содержит несколько свойств, наиболее интересными из которых является width и height, определяющие ширину и высоту экрана в пикселях. <script type="text/javascript" language="javascript">
var goodW = (window.screen.width >= 800 &&
window.screen.width < 2048)
var goodH = (window.screen.height >= 600 &&
window.screen.height < 1024)
if(goodW && goodH)
alert('Подходящее разрешение');
else
alert('Не подходящее разрешение!');
</script>
Скрипт определяет текущее разрешение экрана и если оно слишком маленькое или слишком большое - выдаёт предупреждение. На практике вместо вывода сообщения лучше провести корректировку параметров отображения страницы с учётом нестандартного расширения. Например, для очень маленьких расширений можно скрыть неинформативные элементы (картинки, рекламу и пр.), чтобы они не загромождали и без того небольшой экран. Итак, мы рассмотрели основные объекты, используемые при разработке большинства скриптов, хотя в действительности объектов значительно больше (мы не рассматривали объекты, специфичные для конкретных браузеров). Сложности у вас могут возникнуть только при написании кроссбраузерных скриптов, но это уже дело опыта и глубины знания особенносей браузеров, для которых создаётся скрипт. В новых спецификациях JavaScript (версии 1.2, 1.3+) в стандартные объекты добавлено много интересных и полезных свойств и методов. Некоторые из них уже поддерживаются большинством производителей браузеров, но далеко не все, поэтому использовать нововведения надо осмотрительно и аккуратно. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Спасибо, что заглянули на сайт. Надеюсь, Вам понравилось. Заходите еще. Здесь всегда рады вам :) |
|
© 2005-2012 |
E-mail: |