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);