Веб_броузеры обычно отображают в нижней части любого окна строку состоя' ния, предназначенную для вывода сообщений пользователю. Когда пользова_тель, например, наводит указатель мыши на гиперссылку, броузер обычно пока_ зывает URL_адрес, на который эта ссылка указывает.
Чтобы задать текст, который броузер должен вывести в строке состояния, в ста_ рых броузерах можно использовать свойство status. Это свойство обычно приме_ няется для вывода в строке состояния описания документа в удобочитаемом ви_
304 Глава 14. Работа с окнами броузера
де, когда пользователь наводит указатель мыши на гиперссылку. Сделать это можно примерно следующим образом:
Смущены? Попробуйте
<a href="help.html" onmouseover="status='Переход к справке!'; return true;"> обратиться к разделу справки</a>.
Когда указатель мыши оказывается на этой ссылке, исполняется JavaScript_код в обработчике события onmouseover. В результате в свойство status окна записы_ вается текст и затем возвращается значение true, сообщая броузеру, что он не должен предпринимать собственное действие, выполняемое по умолчанию (ото_ бражать URL_адрес гиперссылки).
Этот фрагмент в современных броузерах уже не работает. Подобный программ_ ный код слишком часто применялся для преднамеренного обмана пользователя путем подмены целевого адреса (например, с целью мошенничества), что приве_ ло к наложению запрета на изменение свойства status в современных броузерах.
Объект Window обладает также свойством defaultStatus, позволяющим вывести текст в строке состояния, если броузер сам ничего другого в ней не выводит (на_ пример, URL_адрес гиперссылки). Это свойство работоспособно лишь в некото_ рых броузерах (например, в Firefox 1.0 возможность записи в свойство default_ Status отсутствует, равно как и в свойство status).
Исторически свойство defaultStatus использовалось для создания анимацион_ ных эффектов в строке состояния. В прежние времена, когда содержимое доку_ мента еще не было доступно сценариям, но были доступны свойство defaultSta_ tus и метод setInterval(), веб_разработчики часто поддавались искушению, соз_ давая разнообразные кричащие и сбивающие с толку анимационные эффекты в стиле бегущей строки. К счастью, эти дни канули в лету. Тем не менее необхо_ димость использовать строку состояния иногда все_таки возникает, причем да_ же совместно с методом setInterval(), как это демонстрируется в примере 14.6.
Пример 14.6. Анимационный эффект в строке состояния, выполненный со вкусом
<script>
var WastedTime = {
start: new Date( ), // Запомнить время начала
displayElapsedTime: function() {
var now = new Date(); // Получить текущее время
// Подсчитать число прошедших минут
var elapsed = Math.round((now _ WastedTime.start)/60000); // И попробовать отобразить их в строке состояния window.defaultStatus = "Прошло " + elapsed + " минут.";
}
}
// Обновлять строку состояния раз в минуту setInterval(WastedTime.displayElapsedTime, 60000); </script>