jQueryมีปลั๊กอินที่ดีสำหรับการเปลี่ยน URL เบราว์เซอร์เรียกว่าjQuery ดัน
JavaScript pushState
และ jQuery สามารถใช้ร่วมกันได้เช่น:
history.pushState(null, null, $(this).attr('href'));
ตัวอย่าง:
$('a').click(function (event) {
// Prevent default click action
event.preventDefault();
// Detect if pushState is available
if(history.pushState) {
history.pushState(null, null, $(this).attr('href'));
}
return false;
});
ใช้JavaScript เท่านั้นhistory.pushState()
ซึ่งเปลี่ยนผู้อ้างอิงที่ถูกใช้ในส่วนหัว HTTP สำหรับวัตถุ XMLHttpRequest ที่สร้างขึ้นหลังจากที่คุณเปลี่ยนสถานะ
ตัวอย่าง:
window.history.pushState("object", "Your New Title", "/new-url");
วิธี pushState ():
pushState()
ใช้สามพารามิเตอร์: วัตถุรัฐชื่อ (ซึ่งปัจจุบันถูกละเว้น) และ (เลือก) URL ลองตรวจสอบพารามิเตอร์ทั้งสามนี้โดยละเอียด
วัตถุรัฐ - วัตถุรัฐเป็นวัตถุ JavaScript pushState()
ซึ่งมีความเกี่ยวข้องกับประวัติศาสตร์รายการใหม่ที่สร้างขึ้นโดย เมื่อใดก็ตามที่ผู้ใช้นำทางไปยังสถานะใหม่เหตุการณ์ popstate จะเริ่มทำงานและคุณสมบัติสถานะของเหตุการณ์ประกอบด้วยสำเนาของวัตถุสถานะของรายการประวัติ
วัตถุสถานะสามารถเป็นอะไรก็ได้ที่สามารถทำให้เป็นอันดับ เนื่องจาก Firefox บันทึกออบเจ็กต์สถานะลงในดิสก์ของผู้ใช้เพื่อให้สามารถเรียกคืนได้หลังจากที่ผู้ใช้รีสตาร์ทเบราว์เซอร์ของเราเราจึงกำหนดขนาดสูงสุดที่อักขระ 640k ในการแสดงสถานะของวัตถุแบบอนุกรม หากคุณผ่านวัตถุสถานะที่มีการแทนค่าแบบอนุกรมมีขนาดใหญ่กว่านี้pushState()
วิธีจะส่งข้อยกเว้น หากคุณต้องการพื้นที่มากกว่านี้ขอแนะนำให้คุณใช้ sessionStorage และ / หรือ localStorage
title - Firefox ปัจจุบันละเว้นพารามิเตอร์นี้แม้ว่ามันอาจจะใช้มันในอนาคต การส่งสตริงว่างที่นี่ควรปลอดภัยต่อการเปลี่ยนแปลงในอนาคตของวิธีการ หรือคุณสามารถส่งชื่อสั้น ๆ สำหรับรัฐที่คุณกำลังจะย้าย
URL - URLของรายการประวัติใหม่ถูกกำหนดโดยพารามิเตอร์นี้ โปรดทราบว่าเบราว์เซอร์จะไม่พยายามโหลด URL นี้หลังจากมีการโทรpushState()
แต่อาจพยายามโหลด URL ในภายหลังเช่นหลังจากผู้ใช้รีสตาร์ทเบราว์เซอร์ URL ใหม่ไม่จำเป็นต้องเป็นค่าสัมบูรณ์ หากเป็นแบบสัมพัทธ์จะถูกแก้ไขโดยสัมพันธ์กับ URL ปัจจุบัน URL ใหม่จะต้องมีต้นกำเนิดเดียวกันกับ URL ปัจจุบัน มิฉะนั้นpushState()
จะส่งข้อยกเว้น พารามิเตอร์นี้เป็นทางเลือก หากไม่ได้ระบุไว้จะถูกตั้งค่าเป็น URL ปัจจุบันของเอกสาร