ค่า window.location แสดงถึง URL ปัจจุบันที่คุณกำลังดูในเบราว์เซอร์ของคุณ คุณสามารถแทนที่ค่านี้เพื่อไปที่ URL อื่นใน JavaScript สิ่งนี้มีประโยชน์หากคุณต้องการเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าอื่น คุณยังสามารถใช้เมธอด assign() หรือ replace() ได้
มีเหตุผลสองสามประการที่คุณอาจต้องการเปลี่ยนเส้นทางผู้ใช้ไปยังเว็บไซต์อื่นหรือชื่อพาธที่อัปเดต ในกรณีส่วนใหญ่ คุณอาจต้องการเปลี่ยนเส้นทางโดยขึ้นอยู่กับการให้สิทธิ์ .ของผู้ใช้ – ไม่ว่าลูกค้าจะล็อกอินเข้าสู่ไซต์หรือไม่ ในบทความนี้ เราจะมาดูวิธีการทำสิ่งนั้นในหน้าเว็บโดยใช้ JavaScript
JavaScript ไปที่ URL
API ประวัติเบราว์เซอร์ JavaScript ช่วยให้คุณไปที่ URL ใหม่ คุณสามารถใช้วิธีการต่อไปนี้เพื่อนำทางไปยัง URL ใหม่:
- กำหนดค่าใหม่ให้กับ window.location
- ใช้เมธอด window.assign()
- ใช้เมธอด window.replace()
ทั้งสามวิธีนี้บรรลุเป้าหมายในการนำทางไปยัง URL อื่นอย่างเท่าเทียมกัน มาดูวิธีการเหล่านี้กัน
จาวาสคริปต์ window.location ค่า
ในการนำทางไปยัง URL ใหม่ ให้ใช้วัตถุตำแหน่งจาก API ประวัติของเบราว์เซอร์ ประวัติเซสชันช่วยให้คุณกำหนดวัตถุตำแหน่งใหม่ให้กับ URL ใหม่หรือใช้คุณสมบัติ href บนวัตถุเดียวกันนั้นได้
ไวยากรณ์สำหรับวิธีนี้คือ:
window.location = "url";
“url” หมายถึง URL ที่คุณต้องการให้ผู้ใช้เข้าชม เมื่อโค้ดบรรทัดนี้ทำงาน การเปลี่ยนเส้นทาง JavaScript จะเริ่มต้นขึ้น สิ่งนี้จะเปลี่ยนหน้าที่ผู้ใช้ดูในเว็บเบราว์เซอร์ของตน
ลองดูวิธีนี้ในรูปแบบของตัวอย่าง:
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
const handleClick = (e) => { console.log("click") window.location = ('https://careerkarma.com') // window.location.href = ('https://careerkarma.com') console.log(window.location) }
เมื่อฟังก์ชัน handleClick() ทำงาน โค้ดของเราจะบันทึกคำสั่งไปยังคอนโซล JavaScript จากนั้น รหัสของเราจะเปลี่ยนเส้นทางเราไปยัง URL ใหม่
JavaScript window.location.assign()
ออบเจ็กต์ตำแหน่งมีวิธีการเปลี่ยนเส้นทางที่เรียกว่า assign() เมธอดนี้กำหนด URL ปัจจุบันด้วย URL ที่กำหนดและเพิ่มลงในสแต็กประวัติ
กองประวัติแสดงถึงหน้าที่คุณได้ดู (ลองนึกถึง “ลูกศรย้อนกลับ” ที่ให้คุณย้อนกลับหน้า)
พิจารณาไวยากรณ์ต่อไปนี้:
window.location.assign("url");
ต่างจากตัวอย่างที่แล้ว เราไม่จำเป็นต้องกำหนดค่าใดๆ ให้กับตัวแปร JavaScript (window.location) แต่เราใช้วิธีเปลี่ยนหน้าเว็บที่ผู้ใช้ดูแทน
สแต็กประวัติคือวิธีที่เบราว์เซอร์จดจำว่าปุ่มย้อนกลับหรือปุ่มไปข้างหน้าควรไปที่ใด
มาดูตัวอย่างแบบเต็มของวิธีนี้กัน:
const handleClick = (e) => { console.log("click") window.location.assign('https://careerkarma.com'); }
หากคุณต้องการเปลี่ยนเส้นทางไปยังหน้าอื่นบนไซต์เดียวกัน ให้ใช้คุณสมบัติชื่อพาธบนออบเจกต์ตำแหน่ง:
const handleClick = (e) => { console.log("click") window.location.pathname = ('/newpage.html') console.log(window.location) }
JavaScript window.location.replace()
คุณสามารถควบคุมได้ว่าจะให้ผู้ใช้ใช้ปุ่มย้อนกลับเพื่อกลับไปยังไซต์ก่อนหน้าหรือไม่
เมื่อใช้เมธอด replace() คุณสามารถนำทางผู้ใช้ไปยังไซต์และหยุดไม่ให้ผู้ใช้กลับไปยังหน้าก่อนหน้า ในทางกลับกัน assign() จะบันทึกหน้าที่คุณกำลังดูก่อนหน้านี้ในประวัติเบราว์เซอร์ของคุณ ดังนั้น ด้วย assign() คุณสามารถดูหน้าสุดท้ายที่คุณเปิดอยู่ได้
มาดูวิธีการแทนที่ () กัน:
window.location.replace("url");
เช่นเดียวกับ assign() แทนที่ () เป็นวิธีการ เมธอดนี้ยอมรับหนึ่งอาร์กิวเมนต์:A URL ที่คุณต้องการชี้ผู้ใช้
เราสามารถใช้วิธี replace() กับฟังก์ชันที่กำหนดเองเพื่อเปลี่ยน URL ที่ผู้ใช้ดูเมื่อเรียกใช้เมธอด:
const handleClick = (e) => { console.log("click") window.location.replace('https://careerkarma.com'); }
ใช้ Repl.it นี้เพื่อเล่นกับวิธีการต่างๆ ในการเปลี่ยนเส้นทางไปยัง URL ที่คุณเลือก คุณสามารถใช้ปุ่มเรียกใช้เพื่อรีเซ็ตรหัสเป็นค่าเริ่มต้นได้
บทสรุป
มีสามวิธีในการไปที่ URL ใน JavaScript:ใช้ window.location, window.location.assign() หรือ window.location.replace() วิธีการ
คุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ JavaScript หรือไม่? ดูคู่มือ How to Learn JavaScript ของเรา คู่มือนี้มีเคล็ดลับสำคัญเกี่ยวกับวิธีการเรียนรู้ JavaScript และรายการทรัพยากรการเรียนรู้ที่ครอบคลุมสำหรับผู้เริ่มต้นและนักพัฒนาระดับกลาง