Чтение онлайн

на главную - закладки

Жанры

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

Если методу

setTimeout
указать величину интервала 0 миллисекунд, указанная функция будет вызвана не сразу, а «как только такая возможность появится, т. е. как только завершат работу все обработчики событий.

14.2. Адрес документа и навигация по нему

Свойство

location
объекта
Window
ссылается на объект
Location
, представляющий текущий URL-адрес документа, отображаемого в окне и определяющий методы, инициирующие загрузку нового документа в окно.

Свойство

location
объекта
Document
также ссылается на объект
Location
:

window.location === document.location // всегда верно

Кроме того, объект

Document
имеет свойство
URL
, хранящее статическую строку с адресом URL документа. При перемещении по документу с использованием идентификаторов фрагментов (таких как «#table-of-contents») внутри документа объект
Location
будет обновляться, отражая факт перемещения, но свойство document. URL останется неизменным.

14.2.1. Анализ URL

Свойство

location
окна является ссылкой на объект
Location
и представляет URL-адрес документа, отображаемого в данный момент в текущем окне. Свойство
href
объекта
Location
– это строка, содержащая полный текст URL-адреса. Метод
toString
объекта Location возвращает значение свойства
href
, поэтому в контекстах, где неявно подразумевается вызов метода
toString,
вместо конструкции
location.href
можно писать просто
location
.

Другие свойства этого объекта, такие как

protocol, host, hostname, port, pathname, search
и
hash
, определяют отдельные части URL-адреса. Они известны как свойства «декомпозиции URL» и также поддерживаются объектами
Link
(которые создаются элементами
<а>
и
<агеа>
в HTML-документах). Полное описание объектов
Location
и
Link
приводится в четвертой части книги.

Свойства

hash
и
search
объекта
Location
представляют особый интерес. Свойство
hash
возвращает «идентификатор фрагмента» из адреса URL, если он имеется: символ решетки (#) со следующим за ним идентификатором. Свойство
search
содержит часть URL-адреса, следующую за вопросительным знаком, если таковая имеется, включая сам знак вопроса. Обычно эта часть URL-адреса является строкой запроса. В целом эта часть URL-адреса используется для передачи параметров и является средством встраивания аргументов в URL-адрес. Хотя эти аргументы обычно предназначены для сценариев, выполняющихся на сервере, нет никаких причин, по которым они не могли бы также использоваться в страницах, содержащих JavaScript-код. В примере 14.2 приводится определение универсальной функции
urlArgs,
позволяющей извлекать аргументы из свойства
search
URL-адреса. В
примере используется глобальная функция
decodeURIComponent,
имеющаяся в клиентском JavaScript. (Смотрите справочную статью «Global» в третьей части книги.)

Пример 14.2. Извлечение аргументов из строки search URL-adpeca

/*

* Эта функция выделяет в URL-адресе разделенные амперсандами

* пары аргументов имя/значение из строки запроса. Сохраняет эти пары

* в свойствах объекта и возвращает этот объект. Порядок использования:

*

* var args = urlArgsO; // Извлечь аргументы из URL

* var q = args.q || "" // Использовать аргумент, если определен,

// или значение по умолчанию

* var n = args.n ? parselnt(args.n) : 10;

*/

function urlArgs {

var args = {}; // Создать пустой объект

var query = location.search.substring(1); // Строка запроса без '?'

var pairs = query.split("&"); // Разбить по амперсандам

for(var і = 0; і < pairs.length; i++) { // Для каждого фрагмента

var pos = pairs[i].index0f('='); // Отыскать пару имя/значение

if (pos == -1) continue; // He найдено - пропустить

var name = pairs[i].substrings,pos); // Извлечь имя

var value = pairs[i].substring(pos+1); // Извлечь значение

value = decodeURIComponent(value); // Преобразовать значение

args[name] = value; // Сохранить в виде свойства

}

return args; // Вернуть полученные аргументы

}

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

Метод

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

Поделиться:
Популярные книги

Комментарии к «Евгению Онегину» Александра Пушкина

Набоков Владимир Владимирович
Документальная литература:
критика
5.00
рейтинг книги
Комментарии к «Евгению Онегину» Александра Пушкина

Дважды одаренный. Том III

Тарс Элиан
3. Дважды одаренный
Фантастика:
альтернативная история
аниме
фэнтези
фантастика: прочее
юмористическое фэнтези
5.50
рейтинг книги
Дважды одаренный. Том III

Под-Московье

Калинкина Анна
Фантастика:
боевая фантастика
постапокалипсис
5.00
рейтинг книги
Под-Московье

Гримуар темного лорда VIII

Грехов Тимофей
8. Гримуар темного лорда
Фантастика:
боевая фантастика
альтернативная история
аниме
фэнтези
фантастика: прочее
попаданцы
5.25
рейтинг книги
Гримуар темного лорда VIII

Из истории русской, советской и постсоветской цензуры

Рейфман Павел Семенович
Научно-образовательная:
история
5.00
рейтинг книги
Из истории русской, советской и постсоветской цензуры

Точка Бифуркации XI

Смит Дейлор
11. ТБ
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Точка Бифуркации XI

50 знаменитых городов мира

Скляренко Валентина Марковна
31. 100 знаменитых
Научно-образовательная:
история
4.75
рейтинг книги
50 знаменитых городов мира

Барон диктует правила

Ренгач Евгений
4. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон диктует правила

Последний реанорец. Том XII – Часть II

Павлов Вел
12. Высшая Речь
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний реанорец. Том XII – Часть II

Под знаком Песца

Видум Инди
1. Под знаком Песца
Фантастика:
альтернативная история
аниме
5.00
рейтинг книги
Под знаком Песца

Дневники

Толстой Лев Николаевич
Проза:
русская классическая проза
6.83
рейтинг книги
Дневники

Искусство управления складом

Улыбина Юлия Николаевна
Деловая литература:
о бизнесе популярно
5.00
рейтинг книги
Искусство управления складом

Испытания

Мусаханов Валерий Яковлевич
Проза:
новелла
повесть
5.00
рейтинг книги
Испытания

Экспансия

Каменев Алекс
8. Цитадели гордыни
Фантастика:
героическая фантастика
боевая фантастика
5.00
рейтинг книги
Экспансия