Методы объекта location предназначены для управления загрузкой и перезагрузкой страницы. Это управление заключается в том, что можно либо перезагрузить текущий документ (метод reload()), либо загрузить новый (метод replace() ).
window.location.reload(true);
Метод reload() полностью моделирует поведение браузера при нажатии на кнопку Reload в панели инструментов. Если вызывать метод без аргумента или указать его равным true, то браузер проверит время последней модификации документа и загрузит его либо из кеша (если документ не был модифицирован), либо с сервера. Такое поведение соответствует простому нажатию кнопки Reload браузера (клавиши F5 в Internet Explorer). Если в качестве аргумента указать false, то браузер перезагрузит текущий документ с сервера, несмотря ни на что. Такое поведение соответствует одновременному нажатию клавиши Shift и кнопки браузера Reload (или Ctrl+F5 в Internet Explorer).
Используя объект location, перейти на новую страницу можно двумя способами:
Разница между ними - в отображении этого действия в истории посещений страницwindow.history. В первом случае в историю посещений добавится новый элемент, содержащий адрес " http://www.newsite.ru/ ", так что при желании можно будет нажать кнопку Back на панели браузера, чтобы вернуться к прежней странице. Во втором случае новый адрес "http://www.newsite.ru/ " заместит прежний в истории посещений, и вернуться к прежней странице нажатием кнопки Back уже будет невозможно.
История посещений (history)
История посещений страниц World Wide Web позволяет пользователю вернуться к странице, которую он просматривал ранее в данном окне браузера. История посещений в JavaScript трансформируется в объект window.history. Этот объект указывает на массив URL-страниц, которые пользователь посещал и которые он может получить, выбрав из меню браузера режим Go. Методы объекта history позволяют загружать страницы, используя URL из этого массива.
Чтобы не возникло проблем с безопасностью браузера, путешествовать по History можно, только используя индекс. При этом URL, как текстовая строка, программисту недоступен. Чаще всего этот объект используют в примерах или страницах, на которые могут быть ссылки из нескольких разных страниц, предполагая, что можно вернутся к странице, из которой пример будет загружен:
Данный код отображает кнопку "Назад", нажав на которую, мы вернемся на предыдущую страницу. Аналогичным образом действует метод 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
Данные о версии браузера и совместимости
Рассмотрим простой пример определения типа программы просмотра:
При нажатии на кнопку отображается окно предупреждения, содержащее значение свойства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/tif']==null) document.write('Ваш браузер не поддерживает TIFF');</SCRIPT>
К сожалению, такая проверка не позволяет определить наличие возможности автоматической подгрузки графики.