Свойством какого объекта является status

Аннотация: Рассматриваются вопросы программирования свойств окна браузера, управление окнами, а также работа с фреймами.

Объект window

Класс объектов Window – это самый старший класс в иерархии объектов JavaScript. Объект window, относящийся к текущему окну (т.е. в котором выполняется скрипт), является объектом класса Window. Класс объектов Frame содержится в классе Window, т.е. каждый фрейм – это тоже объект класса Window.

О фреймах речь пойдет ниже, а пока вернемся к объекту window. Объект window создается только в момент открытия окна. Все остальные объекты, которые порождаются при загрузке страницы, есть свойства объекта window. Более того, все глобальные переменные, определенные в данном окне, тоже являются свойствами объекта window. Таким образом, у объекта window могут быть разные свойства при загрузке разных страниц. Кроме того, в разных браузерах свойства объектов и поведение объектов и браузера при обработке событий может быть различным. При программировании на JavaScript чаще всего используют следующие свойства, методы и события объекта window:

Таблица
4.1.
Свойства, методы и события объекта window

СвойстваМетодыСобытия
status
defaultStatus
location
history
navigator

document
frames[]

opener
parent
self
top

open()
close()
focus()
blur()

alert()
confirm()
prompt()

setTimeout()
setInterval()
clearTimeout()
clearInterval()

Load
Unload

Focus
Blur

Resize
Error

Поскольку объект window является самым старшим, то в большинстве случаев при обращении к его свойствам и методам приставку ” window.” можно опускать (разумеется, в случае, если вы хотите обратиться к свойству или методу текущего окна, где работает скрипт; если же это другое окно, то необходимо указать его идентификатор). Так, например, можно писать alert(‘Привет’) вместо window.alert(‘Привет’), или location вместо window.location. Исключениями из этого правила являются вызовы методов open() и close(), у которых нужно указывать имя окна, с которым работаем (родительское в первом случае и дочернее во втором). Свойства frames[], self, parent и top будут рассмотрены в разделе, посвященном фреймам. Свойство opener будет рассмотрено при описании метода window.close().

Свойства объекта window

Поле статуса и свойство window.status

Поле статуса – это первое, что начали использовать авторы HTML-страниц из арсенала JavaScript. Калькуляторы, игры, математические вычисления и другие элементы выглядели слишком искусственно. На их фоне бегущая строка в поле статуса была изюминкой, которая могла действительно привлечь внимание пользователей к Web-узлу. Постепенно ее популярность сошла на нет. Бегущие строки стали редкостью, но программирование поля статуса встречается на многих Web-узлах.

Рис.
4.1.
Поле статуса

Полем статуса (status bar) называют поле нижней части окна браузера сразу под областью отображения HTML-страницы. В поле статуса отображается информация о состоянии браузера (загрузка документа, загрузка графики, завершение загрузки, запуск апплета и т.п.). Программа на JavaScript имеет возможность работать с этим полем как с изменяемым свойством окна. При этом фактически с ним связаны два разных свойства:

  • window.status – значение поля статуса;
  • window.defaultStatus – значение поля статуса по умолчанию.

Значение свойства status можно изменить – и оно тут же будет отображено в поле статуса. Свойство defaultStatus тоже можно менять – и сразу по его изменении оно отображается в поле статуса.

Разница между этими двумя свойствами заключается в их поведении: если свойству status присвоить пустую строку: window.status=””, то в поле статуса автоматически будет отображено значение defaultStatus. Обратного же не происходит: при присвоении пустой строки свойству defaultStatus оно и отобразится в поле статуса, независимо от значения свойства status. Следует отметить, что реакция браузеров на описываемые ниже действия со свойствами status и defaultStatus может быть разной в различных браузерах.

Программируем status

Свойство status связано с отображением сообщений о событиях, отличных от простой загрузки страницы.
Например, в Internet Explorer при наведении указателя мыши на ссылку обработчик onMouseOver помещает в поле статуса значение URL, указанное в атрибуте HREF этой ссылки (при этом никак не меняя значения свойств status и defaultStatus ). При попадании же курсора мыши на область, свободную от ссылок, обработчик onMouseOut возвращает в поле статуса значение defaultStatus, при условии, что оно не есть пустая строка (опять же никак не меняя значений обоих свойств). Мы можем изменить это поведение, например, как в следующем примере:

<A onMouseOver=”window.status=’Мышь над ссылкой’;return true;”
onMouseOut=”window.status=’Мышь увели со ссылки’;”
HREF=”https://site.com/”>Наведите мышь на ссылку и следите за полем статуса</A>

Обратите внимание на оператор return true в конце обработчика событий onMouseOver. Он необходим для того, чтобы отменить действие по умолчанию (в данном случае – вывод URL в поле статуса), которое, в отсутствие этого оператора, браузер выполнил бы сразу после вывода нами своей строки в поле статуса, и пользователь не успел бы увидеть нашу строку. Аналогичный трюк отмены действия по умолчанию годится и для некоторых других событий ( onClick, onKeyDown, onKeyPress, onMouseDown, onMouseUp, onSubmit, onReset ), с той лишь разницей, что для перечисленных обработчиков отмена выполняется оператором return false.

Для обработчика onMouseOut такого способа отменить действие по умолчанию не существует (к сожалению). Но в данном конкретном случае это не требуется – как уже было сказано, при уводе курсора со ссылки в поле статуса восстанавливается значение defaultStatus только в случае, если это значение не есть пустая строка. Но в нашем случае (по умолчанию при загрузке страницы в IE) оно равно именно пустой строке. Поэтому, уводя курсор с нашей ссылки, мы продолжаем видеть в поле статуса строку “Мышь увели со ссылки”. Ситуация изменится в следующем примере, когда мы предварительно зададим свое (непустое) значение defaultStatus.

Программируем defaultStatus

Свойство defaultStatus определяет текст, отображаемый в поле статуса, когда никаких событий не происходит. Дополним предыдущий пример изменением этого свойства в момент окончания загрузки документа, т.е. в обработчике onLoad:

<BODY onLoad=”window.defaultStatus=’Значение по умолчанию’;”>

<A onMouseOver=”window.status=’Мышь над ссылкой’;return true;”
onMouseOut=”window.status=’Мышь увели со ссылки’; alert(‘Ждем’);”
HREF=”https://site.com/”>Наведите мышь на ссылку и следите за полем статуса</A>

</BODY>

Сразу после загрузки документа в поле статуса будет “Значение по умолчанию”. При наведении указателя мыши на ссылку в поле статуса появится надпись “Мышь над ссылкой”, при этом URL ссылки ( https://site.com/ ) в поле статуса не появится, т.к. мы подавили его вывод оператором return true.

При убирании указателя мыши со ссылки пользователь бы не успел увидеть строку “Мышь увели со ссылки”, поскольку действие по умолчанию (вывод значения defaultStatus в поле статуса) не подавлено (и не может быть подавлено – у обработчика onMouseOut нет такой возможности). Однако мы ввели оператор вывода окна предупреждения alert(‘Ждем’) (он рассматривается ниже) – и теперь пользователь будет видеть в поле статуса строку “Мышь увели со ссылки” до тех пор, пока не нажмет OK в этом окне.

Источник

Аннотация: Рассматриваются вопросы программирования свойств окна браузера, управление окнами, а также работа с фреймами.

Объект window

Класс объектов Window – это самый старший класс в иерархии объектов JavaScript. Объект window, относящийся к текущему окну (т.е. в котором выполняется скрипт), является объектом класса Window. Класс объектов Frame содержится в классе Window, т.е. каждый фрейм – это тоже объект класса Window.

О фреймах речь пойдет ниже, а пока вернемся к объекту window. Объект window создается только в момент открытия окна. Все остальные объекты, которые порождаются при загрузке страницы, есть свойства объекта window. Более того, все глобальные переменные, определенные в данном окне, тоже являются свойствами объекта window. Таким образом, у объекта window могут быть разные свойства при загрузке разных страниц. Кроме того, в разных браузерах свойства объектов и поведение объектов и браузера при обработке событий может быть различным. При программировании на JavaScript чаще всего используют следующие свойства, методы и события объекта window:

Таблица
4.1.
Свойства, методы и события объекта window

СвойстваМетодыСобытия
status
defaultStatus
location
history
navigator

document
frames[]

opener
parent
self
top

open()
close()
focus()
blur()

alert()
confirm()
prompt()

setTimeout()
setInterval()
clearTimeout()
clearInterval()

Load
Unload

Focus
Blur

Resize
Error

Поскольку объект window является самым старшим, то в большинстве случаев при обращении к его свойствам и методам приставку ” window.” можно опускать (разумеется, в случае, если вы хотите обратиться к свойству или методу текущего окна, где работает скрипт; если же это другое окно, то необходимо указать его идентификатор). Так, например, можно писать alert(‘Привет’) вместо window.alert(‘Привет’), или location вместо window.location. Исключениями из этого правила являются вызовы методов open() и close(), у которых нужно указывать имя окна, с которым работаем (родительское в первом случае и дочернее во втором). Свойства frames[], self, parent и top будут рассмотрены в разделе, посвященном фреймам. Свойство opener будет рассмотрено при описании метода window.close().

Свойства объекта window

Поле статуса и свойство window.status

Поле статуса – это первое, что начали использовать авторы HTML-страниц из арсенала JavaScript. Калькуляторы, игры, математические вычисления и другие элементы выглядели слишком искусственно. На их фоне бегущая строка в поле статуса была изюминкой, которая могла действительно привлечь внимание пользователей к Web-узлу. Постепенно ее популярность сошла на нет. Бегущие строки стали редкостью, но программирование поля статуса встречается на многих Web-узлах.

Рис.
4.1.
Поле статуса

Полем статуса (status bar) называют поле нижней части окна браузера сразу под областью отображения HTML-страницы. В поле статуса отображается информация о состоянии браузера (загрузка документа, загрузка графики, завершение загрузки, запуск апплета и т.п.). Программа на JavaScript имеет возможность работать с этим полем как с изменяемым свойством окна. При этом фактически с ним связаны два разных свойства:

  • window.status – значение поля статуса;
  • window.defaultStatus – значение поля статуса по умолчанию.

Значение свойства status можно изменить – и оно тут же будет отображено в поле статуса. Свойство defaultStatus тоже можно менять – и сразу по его изменении оно отображается в поле статуса.

Разница между этими двумя свойствами заключается в их поведении: если свойству status присвоить пустую строку: window.status=””, то в поле статуса автоматически будет отображено значение defaultStatus. Обратного же не происходит: при присвоении пустой строки свойству defaultStatus оно и отобразится в поле статуса, независимо от значения свойства status. Следует отметить, что реакция браузеров на описываемые ниже действия со свойствами status и defaultStatus может быть разной в различных браузерах.

Программируем status

Свойство status связано с отображением сообщений о событиях, отличных от простой загрузки страницы.
Например, в Internet Explorer при наведении указателя мыши на ссылку обработчик onMouseOver помещает в поле статуса значение URL, указанное в атрибуте HREF этой ссылки (при этом никак не меняя значения свойств status и defaultStatus ). При попадании же курсора мыши на область, свободную от ссылок, обработчик onMouseOut возвращает в поле статуса значение defaultStatus, при условии, что оно не есть пустая строка (опять же никак не меняя значений обоих свойств). Мы можем изменить это поведение, например, как в следующем примере:

<A onMouseOver=”window.status=’Мышь над ссылкой’;return true;”
onMouseOut=”window.status=’Мышь увели со ссылки’;”
HREF=”https://site.com/”>Наведите мышь на ссылку и следите за полем статуса</A>

Обратите внимание на оператор return true в конце обработчика событий onMouseOver. Он необходим для того, чтобы отменить действие по умолчанию (в данном случае – вывод URL в поле статуса), которое, в отсутствие этого оператора, браузер выполнил бы сразу после вывода нами своей строки в поле статуса, и пользователь не успел бы увидеть нашу строку. Аналогичный трюк отмены действия по умолчанию годится и для некоторых других событий ( onClick, onKeyDown, onKeyPress, onMouseDown, onMouseUp, onSubmit, onReset ), с той лишь разницей, что для перечисленных обработчиков отмена выполняется оператором return false.

Для обработчика onMouseOut такого способа отменить действие по умолчанию не существует (к сожалению). Но в данном конкретном случае это не требуется – как уже было сказано, при уводе курсора со ссылки в поле статуса восстанавливается значение defaultStatus только в случае, если это значение не есть пустая строка. Но в нашем случае (по умолчанию при загрузке страницы в IE) оно равно именно пустой строке. Поэтому, уводя курсор с нашей ссылки, мы продолжаем видеть в поле статуса строку “Мышь увели со ссылки”. Ситуация изменится в следующем примере, когда мы предварительно зададим свое (непустое) значение defaultStatus.

Программируем defaultStatus

Свойство defaultStatus определяет текст, отображаемый в поле статуса, когда никаких событий не происходит. Дополним предыдущий пример изменением этого свойства в момент окончания загрузки документа, т.е. в обработчике onLoad:

<BODY onLoad=”window.defaultStatus=’Значение по умолчанию’;”>

<A onMouseOver=”window.status=’Мышь над ссылкой’;return true;”
onMouseOut=”window.status=’Мышь увели со ссылки’; alert(‘Ждем’);”
HREF=”https://site.com/”>Наведите мышь на ссылку и следите за полем статуса</A>

</BODY>

Сразу после загрузки документа в поле статуса будет “Значение по умолчанию”. При наведении указателя мыши на ссылку в поле статуса появится надпись “Мышь над ссылкой”, при этом URL ссылки ( https://site.com/ ) в поле статуса не появится, т.к. мы подавили его вывод оператором return true.

При убирании указателя мыши со ссылки пользователь бы не успел увидеть строку “Мышь увели со ссылки”, поскольку действие по умолчанию (вывод значения defaultStatus в поле статуса) не подавлено (и не может быть подавлено – у обработчика onMouseOut нет такой возможности). Однако мы ввели оператор вывода окна предупреждения alert(‘Ждем’) (он рассматривается ниже) – и теперь пользователь будет видеть в поле статуса строку “Мышь увели со ссылки” до тех пор, пока не нажмет OK в этом окне.

Источник

Работа с окнами

Рассматриваются вопросы программирования свойств окна браузера, управление окнами, а также работа с фреймами

Объект window

Класс объектов Window – это самый старший класс в иерархии объектов JavaScript. Объект window, относящийся к текущему окну (т.е. в котором выполняется скрипт), является объектом класса Window. Класс объектов Frame содержится в классе Window, т.е. каждыйфрейм – это тоже объект класса Window.

О фреймах речь пойдет ниже, а пока вернемся к объекту window. Объект window создается только в момент открытия окна. Все остальные объекты, которые порождаются при загрузке страницы, есть свойства объекта window. Более того, все глобальные переменные, определенные в данном окне, тоже являются свойствами объекта window. Таким образом, у объекта window могут быть разные свойства при загрузке разных страниц. Кроме того, в разных браузерах свойства объектов и поведение объектов и браузера при обработке событийможет быть различным. При программировании на JavaScript чаще всего используют следующие свойства, методы и события объектаwindow:

Таблица 4.1. Свойства, методы и события объектаwindow
Свойства Методы События
status
defaultStatus
location
history
navigator
 
document
frames[]
 
opener
parent
self
top
open()
close()
focus()
blur()
 
alert()
confirm()
prompt()
 
setTimeout()
setInterval()
clearTimeout()
clearInterval()
Load
Unload
 
Focus
Blur
 
Resize
Error

Поскольку объект window является самым старшим, то в большинстве случаев при обращении к его свойствам и методам приставку “window.” можно опускать (разумеется, в случае, если вы хотите обратиться к свойству или методу текущего окна, где работает скрипт; если же это другое окно, то необходимо указать его идентификатор). Так, например, можно писать alert(‘Привет’) вместоwindow.alert(‘Привет’), или location вместо window.location. Исключениями из этого правила являются вызовы методов open()и close(), у которых нужно указывать имя окна, с которым работаем (родительское в первом случае и дочернее во втором). Свойстваframes[], self, parent и top будут рассмотрены в разделе, посвященном фреймам. Свойство opener будет рассмотрено при описании метода window.close().

Свойства объекта window

Поле статуса и свойство window.status

Поле статуса – это первое, что начали использовать авторы HTML-страниц из арсенала JavaScript. Калькуляторы, игры, математические вычисления и другие элементы выглядели слишком искусственно. На их фоне бегущая строка в поле статуса была изюминкой, которая могла действительно привлечь внимание пользователей к Web-узлу. Постепенно ее популярность сошла на нет. Бегущие строки стали редкостью, но программирование поля статуса встречается на многих Web-узлах.

Рис. 4.1.Поле статуса

Полем статуса (status bar) называют поле нижней части окна браузера сразу под областью отображения HTML-страницы. В поле статуса отображается информация о состоянии браузера (загрузка документа, загрузка графики, завершение загрузки, запуск апплета и т.п.). Программа на JavaScript имеет возможность работать с этим полем как с изменяемым свойством окна. При этом фактически с ним связаны два разных свойства:

· window.status – значение поля статуса;

· window.defaultStatus – значение поля статуса по умолчанию.

Значение свойства status можно изменить – и оно тут же будет отображено в поле статуса. Свойство defaultStatus тоже можно менять – и сразу по его изменении оно отображается в поле статуса.

Разница между этими двумя свойствами заключается в их поведении: если свойству status присвоить пустую строку: window.status=””, то в поле статуса автоматически будет отображено значение defaultStatus. Обратного же не происходит: при присвоении пустой строки свойству defaultStatus оно и отобразится в поле статуса, независимо от значения свойства status. Следует отметить, что реакция браузеров на описываемые ниже действия со свойствами status и defaultStatus может быть разной в различных браузерах.

Источник

Поле адреса и свойство window.location

Поле адреса в браузере обычно располагается в верхней части окна и отображает URL загруженного документа. Если пользователь хочет вручную перейти к какой-либо странице (набрать ее URL), он делает это в поле адреса.

Рис.
4.2.
Поле адреса (location)

Свойство location объекта window само является объектом класса Location. Класс Location, в свою очередь, является подклассом класса URL, к которому относятся также объекты классов Area и Link. Объекты Location наследуют все свойства объектов URL, что позволяет получить доступ к любой части схемы URL. Подробнее о классе объектов URL мы расскажем в
“Программируем гипертекстовые переходы”
.

В целях совместимости с прежними версиями JavaScript, в языке поддерживается также свойство window.document.location, которое в настоящее время полностью дублирует свойство window.location со всеми его свойствами и методами. Рассмотрим теперь свойства и методы объекта window.location (событий, связанных с этим объектом, нет).

Свойства объекта location

Их проще продемонстрировать на примере. Предположим, что браузер отображает страницу, расположенную по адресу:

https://www.site.ru:80/dir/page.cgi?product=phone&id=3#mark

Тогда свойства объекта location примут следующие значения:

window.location.href = “https://www.site.ru:80/dir/page.cgi?product=phone&id=3#mark”
window.location.protocol = “http:”
window.location.hostname = “www.site.ru”
window.location.port = 80
window.location.host = “www.site.ru:80”
window.location.pathname = “dir/page.cgi”
window.location.search = “?product=phone&id=3”
window.location.hash = “#mark”

Как уже говорилось в предыдущих лекциях, к свойствам объектов можно обращаться как с помощью точечной нотации (как выше), так и с помощью скобочной нотации, например: window.location[‘host’].

Методы объекта location

Методы объекта location предназначены для управления загрузкой и перезагрузкой страницы. Это управление заключается в том, что можно либо перезагрузить текущий документ (метод reload() ), либо загрузить новый (метод replace() ).

window.location.reload(true);

Метод reload() полностью моделирует поведение браузера при нажатии на кнопку Reload в панели инструментов. Если вызывать метод без аргумента или указать его равным true, то браузер проверит время последней модификации документа и загрузит его либо из кеша (если документ не был модифицирован), либо с сервера. Такое поведение соответствует простому нажатию кнопки Reload браузера (клавиши F5 в Internet Explorer). Если в качестве аргумента указать false, то браузер перезагрузит текущий документ с сервера, несмотря ни на что. Такое поведение соответствует одновременному нажатию клавиши Shift и кнопки браузера Reload (или Ctrl+F5 в Internet Explorer).

Используя объект location, перейти на новую страницу можно двумя способами:

window.location.href=”https://www.newsite.ru/”;
window.location.replace(“https://www.newsite.ru/”);

Разница между ними – в отображении этого действия в истории посещений страниц window.history. В первом случае в историю посещений добавится новый элемент, содержащий адрес ” https://www.newsite.ru/ “, так что при желании можно будет нажать кнопку Back на панели браузера, чтобы вернуться к прежней странице. Во втором случае новый адрес ” https://www.newsite.ru/ ” заместит прежний в истории посещений, и вернуться к прежней странице нажатием кнопки Back уже будет невозможно.

История посещений (history)

История посещений страниц World Wide Web позволяет пользователю вернуться к странице, которую он просматривал ранее в данном окне браузера. История посещений в JavaScript трансформируется в объект window.history. Этот объект указывает на массив URL-страниц, которые пользователь посещал и которые он может получить, выбрав из меню браузера режим Go. Методы объекта history позволяют загружать страницы, используя URL из этого массива.

Чтобы не возникло проблем с безопасностью браузера, путешествовать по History можно, только используя индекс. При этом URL, как текстовая строка, программисту недоступен. Чаще всего этот объект используют в примерах или страницах, на которые могут быть ссылки из нескольких разных страниц, предполагая, что можно вернутся к странице, из которой пример будет загружен:

<FORM><INPUT TYPE=”button” VALUE=”Назад” onClick=”history.back()”></FORM>

Данный код отображает кнопку “Назад”, нажав на которую, мы вернемся на предыдущую страницу. Аналогичным образом действует метод history.forward(), перенося нас на следующую посещенную страницу.

Существует также метод go(), имеющий целочисленный аргумент и позволяющий перескакивать на несколько шагов вперед или назад по истории посещений. Например, history.go(-3) перенесет нас на 3 шага назад в истории просмотра. При этом методы back() и forward() равносильны методу go() с аргументами -1 и 1, соответственно. Вызов history.go(0) приведет к перезагрузке текущей страницы.

Тип браузера (navigator)

Часто возникает задача настройки страницы на конкретную программу просмотра (браузер). При этом возможны два варианта: определение типа браузера на стороне сервера, либо на стороне клиента. Для последнего варианта в арсенале объектов JavaScript существует объект window.navigator. Важнейшие из свойств этого объекта перечислены ниже.

Таблица
4.2.
Основные свойства объекта window.navigator

СвойствоОписание
userAgentОсновная информация о браузере. Передается серверу в HTTP-заголовке при открытии пользователем страниц
appNameНазвание браузера
appCodeNameКодовое название браузера
appVersionДанные о версии браузера и совместимости

Рассмотрим простой пример определения типа программы просмотра:

<FORM><INPUT TYPE=button VALUE=”Тип навигатора”
onClick=”alert(window.navigator.userAgent);”></FORM>

При нажатии на кнопку отображается окно предупреждения, содержащее значение свойства navigator.userAgent. Если это значение разобрать по компонентам, то может получиться, например, следующее:

navigator.userAgent = “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1)”

navigator.appName = “Microsoft Internet Explorer”
navigator.appCodeName = “Mozilla”
navigator.appVersion = “4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1)”

У объекта navigator есть еще несколько интересных с точки зрения программирования применений. Например, чтобы проверить, поддерживает ли браузер клиента язык Java, достаточно вызвать метод navigator.javaEnabled(), возвращающий значение true, если поддерживает, и false в противном случае.

Можно проверить, какие форматы графических файлов поддерживает браузер, воспользовавшись свойством navigator.mimeTypes (оно представляет собой массив всех типов MIME, которые поддерживаются данным браузером):

<SCRIPT>
if(navigator.mimeTypes[‘image/gif’]!=null)
document.write(‘Ваш браузер поддерживает GIF<BR>’);
if(navigator.mimeTypes[‘image/tiff’]==null)
document.write(‘Ваш браузер не поддерживает TIFF’);
</SCRIPT>

К сожалению, такая проверка не позволяет определить наличие возможности автоматической подгрузки графики.

Источник