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' }