Книга: JavaScript. Подробное руководство, 6-е издание

14.2.2. Загрузка нового документа

14.2.2. Загрузка нового документа

Метод assign() объекта Location заставляет окно загрузить и отобразить документ по указанному URL-адресу. Метод replace() выполняет похожую операцию, но перед открытием нового документа он удаляет текущий документ из списка посещавшихся страниц. Когда сценарию просто требуется загрузить новый документ, часто предпочтительнее использовать метод replace(), а не assign(). В противном случае кнопка Back (Назад) броузера вернет оригинальный документ и тот же самый сценарий снова загрузит новый документ. Метод location.replace() можно было бы использовать для загрузки версии веб-страницы со статической разметкой HTML, если сценарий обнаружит, что броузер пользователя не обладает функциональными возможностями, необходимыми для отображения полноценной версии:

// Если броузер не поддерживает объект XMLHttpRequest, выполнить
// переход к статической странице, которая не использует его.
if (!XMLHttpRequest) location.replace("staticpage.html");

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

Кроме методов assign() и гер1асе() объект Location определяет также метод reload(), который заставляет броузер перезагрузить документ.

Однако более традиционный способ заставить броузер перейти к новой странице заключается в том, чтобы просто присвоить новый URL-адрес свойству location:

location = ''http://www.oreilly.com"; // Перейти, чтобы купить несколько книг!

Свойству location можно также присваивать относительные URL-адреса. Они разрешаются относительно текущего URL:

location = "page2.html"; // Загрузить следующую страницу

Идентификатор фрагмента - это особый вид относительного URL-адреса, который заставляет броузер просто прокрутить страницу, чтобы отобразить новый раздел, а не загружать новый документ. Идентификатор #top имеет специальное назначение: если в документе отсутствует элемент с идентификатором «top», он вынудит броузер перейти в начало документа:

location = "#top"; // Перейти в начало документа

Свойства декомпозиции URL объекта Location доступны для записи, и их изменение влечет за собой изменение URL-адреса в свойстве location и вынуждает броузер загрузить новый документ (или, в случае изменения свойства hash, выполнить переход внутри текущего документа):

location.search = "?page=" + (pagenum+1); // загрузить следующую страницу

Оглавление книги


Генерация: 1.615. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз