Location

Об'єкт window.location містить в собі інформацію про поточний URI сторінки.

Перейдіть за посиланням та дослідіть в консолі об'єкт location на тій сторінці:

console.dir(location);

Спробуйте змінити компоненти об'єкта location:

location.hash = '#section2';
location.href = 'js_timer.html';
location.host = 'google.com';

Програмно перезагрузити сторінку:

document.getElementById('buttonReload').onclick = function(){
  location.reload();
};

Програмно перейти на іншу сторінку (аргумент - URL нової сторінки):

document.getElementById('buttonCookie').onclick = function(){
  location.replace('js_cookie.html');
};

Обробка search

(Секція #section2, до якої має проскролитися сторінка при зміні хеша.)

Часто доводиться працювати з блоком search. Можна використати регулярні вирази для виокремлення потрібних ключів та значень, проте, зручніше перетворити блок search на масив чи об'єкт.

Для роботи з поточною URL звертаємося до об'єкта location. Але іноді потрібно розібрати сторонню URL, для цього можна використати конструктор new URL:

let search = location.search.substr(1);

let url = 'http://mysite.com/index.html?name=boba&status=admin';
let search = (new URL(url)).search.substr(1);

Створення масива ключів та значень:

let search = location.search.substr(1).split('&').map(function (e){
  e = e.split('=');
  return [decodeURIComponent(e[0]), decodeURIComponent(e[1])];
});
// [ ['name', 'boba'], ['status', 'admin'] ]

Створення об'єкта:

let search = location.search.substr(1).split('&').reduce(function (a, e){
  e = e.split('=');
  a[decodeURIComponent(e[0])] = decodeURIComponent(e[1]);
  return a;
}, {});
// { name: 'boba', status: 'admin' }