ข้อมูลจำเพาะประวัติศาสตร์ HTML5เป็นโวหาร
history.pushState()
ไม่ได้ส่งpopstate
เหตุการณ์หรือโหลดหน้าใหม่ด้วยตัวเอง มันหมายถึงการผลักดันสถานะในประวัติศาสตร์เท่านั้น นี่คือคุณสมบัติ "เลิกทำ" สำหรับแอปพลิเคชันหน้าเดียว คุณต้องส่งpopstate
เหตุการณ์ด้วยตนเองหรือใช้history.go()
เพื่อนำทางไปยังสถานะใหม่ แนวคิดคือเราเตอร์สามารถฟังpopstate
เหตุการณ์และนำทางสำหรับคุณ
บางสิ่งที่ควรทราบ:
history.pushState()
และhistory.replaceState()
อย่าส่งpopstate
เหตุการณ์
history.back()
,, history.forward()
และปุ่มย้อนกลับและไปข้างหน้าของเบราว์เซอร์ทำการจัดส่งpopstate
กิจกรรม
history.go()
และhistory.go(0)
ทำการโหลดหน้าเต็มและไม่ส่งpopstate
เหตุการณ์
history.go(-1)
(ด้านหลัง 1 หน้า) และhistory.go(1)
(ไปข้างหน้า 1 หน้า) ทำการส่งpopstate
เหตุการณ์
คุณสามารถใช้ประวัติ API เช่นนี้เพื่อผลักดันสถานะใหม่และส่งเหตุการณ์ป๊อบสเตท
history.pushState({message:'New State!'}, 'New Title', '/link');
window.dispatchEvent(new PopStateEvent('popstate', {
bubbles: false,
cancelable: false,
state: history.state
}));
จากนั้นฟังpopstate
กิจกรรมด้วยเราเตอร์