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

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

Шрифт:

* 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, если сценарий обнаружит, что броузер пользователя не обладает функциональными возможностями, необходимыми для отображения полноценной версии:

// Если броузер не поддерживает объект 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
  • ...
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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