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

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

<b>*</b>

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

<b>* var q = args.q || &quot;&quot; // Использовать аргумент, если определен,</b>

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

<b>* var n = args.n ? parselnt(args.n) : 10;</b>

<b>*/</b>

<b>function urlArgs() {</b>

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

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

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

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

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

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

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

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

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

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

<b>  }</b>

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

<b>}</b>

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

Метод

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

<b>// Если броузер не поддерживает объект XMLHttpRequest, выполнить</b>

<b>// переход к статической странице, которая не использует его. </b>

<b>if (!XMLHttpRequest) location.replace(&quot;staticpage.html&quot;);</b>

Примечательно, что строка URL-адреса в этом примере, переданная методу

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

Кроме методов

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

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

<b>location</b>
:

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

Свойству

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

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

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

<b>#top</b>
имеет специальное назначение: если в документе отсутствует элемент с идентификатором «top», он вынудит броузер перейти в начало документа:

<b>location = &quot;#top&quot;; // Перейти в начало документа</b>

Свойства декомпозиции URL объекта

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

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

14.3. История посещений

Свойство

<b>history</b>
объекта
<b>Window</b>
ссылается на объект
<b>History</b>
данного окна. Объект
<b>History</b>
хранит историю просмотра страниц в окне в виде списка документов и сведений о них. Свойство
<b>length</b>
объекта
<b>History</b>
позволяет узнать количество элементов в списке, но по причинам, связанным с безопасностью, сценарии не имеют возможности получить хранящиеся в нем URL-адреса. (Иначе любой сценарий смог бы исследовать историю посещения веб-сайтов.)

Методы

<b>back()</b>
и
<b>forward()</b>
действуют подобно кнопкам
<b>Back</b>
(Назад) и
<b>Forward</b>
(Вперед) броузера: они заставляют броузер перемещаться на один шаг назад и вперед по истории просмотра данного окна. Третий метод,
<b>gо(),</b>
принимает целочисленный аргумент и пропускает заданное число страниц, двигаясь вперед (если аргумент положительный) или назад (если аргумент отрицательный) в списке истории.