history.pushState(state, title, url)
state object คือข้อมูลใดๆ ที่ต้องการเก็บไว้กับ History Entry (Serializable Object)
ตัวอย่าง: บันทึกสีที่เลือก
function selectColor(color) {
var state = { selectedColor: color };
var title = "Page Title";
var path = "/" + color;
history.pushState(state, title, path);
}
// เมื่อผู้ใช้กด Back/Forward
window.addEventListener('popstate', function(event) {
var state = event.state;
if (state) {
selectColor(state.selectedColor); // คืนค่าสีจาก state object
}
});
ข้อจำกัด: State object ต้อง Serialize ได้ (JSON) ขนาดไม่เกิน ~640k (ขึ้นอยู่กับเบราว์เซอร์)