Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

if (!start) start =0; //По умолчанию через 0 мс

if (arguments.length <= 2) // Случай однократного вызова

setTimeout(f, start); // Вызвать 1 раз через start мс.

else { // Случай многократного вызова

setTimeout(repeat, start); // Начать вызовы через start мс

function repeat { // Планируется на вызов выше

var h = setlntervalQ, interval); // Вызывать f через interval мс.

// Прекратить вызовы через end мс, если значение end определено

if (end) setTimeout(function { clearlnterval(h); }, end);

}

}

}

По исторически сложившимся причинам в первом аргументе методам

setTimeout
и
setlnterval
допускается передавать строку. В этом случае строка будет интерпретироваться (как с применением функции
eval
) через указанный интервал, времени. Спецификация HTML5 (и все броузеры, кроме IE) допускает передавать методам
setTimeout
и
setlnterval
дополнительные аргументы после первых двух. Все эти дополнительные аргументы будут передаваться функции, вызов которой планируется этими методами. Однако если требуется сохранить совместимость с IE, эту возможность использовать не следует.

Если методу

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-адресе разделенные амперсандами

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

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

*

  • Читать дальше
  • 1
  • ...
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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