history.pushState()

history.pushState() - додає запис в історію браузера, змінює адресу сторінки без її перезавантаження.

Синтаксис:

history.pushState(data, title [, url])

Параметри:

history - об'єкт history.

data - дані які необхідно зберегти. Якщо ніяких даних не потрібно то вказують null. Щоб отримати дані поточної сторінки використовують history.state. Зверніть увагу що можливе обмеження на об'єм даних.

title - рядок з заголовком.

url - URL адреса веб-сторінки. Якщо не вказана то використовується поточна адреса.

Опис:

history.pushState() метод об'єкту history який додає нову запис в історію сесії браузера і змінює адресу сторінки при цьому браузер не завантажує сторінку за вказаною URL адресою.

З метою безпеки URL повинен мати той самий домен, порт і протокол інакше виникне помилка:

//Security Error: Content at http://xn--80adth0aefm3i.xn--j1amh/history.pushState may not load data from http://ukr.net/. history.pushState(null, 'Новини','http://ukr.net');

При цьому браузер не буде завантажувати цей URL після виклику  pushState(), але може завантажити пізніше коли обновлюється сторінка або перезавантажується браузер.

Щоб змінити поточну запис історії використовуйте history.replaceState()

Приклад:

history.pushState(null, 'JavaScript - Про нас','/about'); for(i=0;i<10; i++) history.pushState(null, 'сторінка'+i,'#date='+i); history.pushState({dates: Date(), url:location.href}, document.title); alert('Дата: '+history.state.dates+' адреса: '+history.state.url);