มีการใช้งานหลายตำแหน่ง Href ใน JavaScript ส่วนใหญ่ดังนี้
self.location.href = "/url" หน้าปัจจุบันเปิดหน้า URL
location.href = "/url" หน้าปัจจุบันเปิดหน้า URL
windows.location.href = "/url" หน้าปัจจุบันเปิดหน้า URL และการใช้งานสามครั้งแรกจะเหมือนกัน
this.location.href = "/url" หน้าปัจจุบันเปิดหน้า URL
parent.location.href = "/url" เปิดหน้าใหม่ในหน้าหลัก
top.location.href = "/url" เปิดหน้าใหม่ในหน้าด้านบน
หากเฟรมถูกปรับแต่งบนหน้าคุณสามารถเปลี่ยนด้านบนของตัวเองได้เป็นชื่อของเฟรมที่กำหนดเอง เอฟเฟกต์คือการเปิดที่อยู่ URL ในหน้าต่างเฟรม
นอกจากนี้ window.location.href = window.location.href; และ window.location.reload () ทั้งคู่รีเฟรชหน้าปัจจุบัน ความแตกต่างคือว่ามีข้อมูลที่ส่งหรือไม่ เมื่อมีการส่งข้อมูล window.location.reload () จะแจ้งว่าจะส่งไปที่ window.location.href = window.location.href; มันจะส่งข้อมูลไปยัง URL ที่ระบุ
เมื่อเขียนโปรแกรม ASP.NET เรามักจะพบปัญหาของการกระโดดหน้า เรามักจะใช้การตอบสนองการเรื้อรังเพื่อทำ ASP.NET Framework หน้าเปลี่ยนเส้นทาง หากลูกค้าต้องการใช้พรอมต์เมื่อกระโดดสิ่งนี้จะไม่มีประสิทธิภาพเช่น:
การคัดลอกรหัสมีดังนี้:
Response.write ("<script> การแจ้งเตือน ('ขอแสดงความยินดีการลงทะเบียนประสบความสำเร็จ!'); </script>");
Response.redirect ("main.html");
ในเวลานี้เนื้อหาที่พร้อมท์ของเราเพิ่มขึ้นก่อนที่มันจะออกมาและไม่มีความแตกต่างระหว่างการตอบสนองการเรื้อรัง ("main.html");
ในเวลานี้เราใช้รหัสต่อไปนี้เพื่อทดสอบ:
การใช้งานหน้า ASP.NET Framework อีกครั้ง
การคัดลอกรหัสมีดังนี้:
Response.write ("<ภาษาสคริปต์ = JavaScript> การแจ้งเตือน ('ขอแสดงความยินดีการลงทะเบียนสำเร็จ!') </script>");
response.write ("<ภาษาสคริปต์ = JavaScript> window.location.href = 'main.html' </script>");
สิ่งนี้ตอบสนองความต้องการของเราและหลังจากพรอมต์ให้ข้ามไปที่หน้า
สิ่งที่สำคัญที่สุดคือคำสั่ง window.location.href สามารถใช้หน้าของเฟรมเวิร์กหนึ่งเพื่อรีเฟรชหน้าของเฟรมเวิร์กอื่นหลังจากดำเนินการรหัสฝั่งเซิร์ฟเวอร์ (Response.redirect ไม่สามารถเข้าถึงได้อย่างน้อยฉันก็ไม่พบ):
ตัวอย่างเช่น: มีสองเฟรมในหน้า index.htm, frameleft และ frameright จากนั้นรีเฟรชหน้าใน frameleft หลังจากเรียกใช้รหัสฝั่งเซิร์ฟเวอร์ในหน้า Frameright
สิ่งที่พบบ่อยที่สุดก่อนหน้านี้คือหลังจากลงทะเบียนกล่องเข้าสู่ระบบจะได้รับการรีเฟรชโดยอัตโนมัติและกล่องเข้าสู่ระบบจะถูกแทนที่ด้วยหน้าเข้าสู่ระบบ ตราบใดที่มีการเพิ่มย่อหน้าหลังจากรหัสที่ลงทะเบียนสำเร็จแล้วหน้าของเฟรมอื่นสามารถรีเฟรชได้ รหัสมีดังนี้:
การคัดลอกรหัสมีดังนี้:
Response.write ("<ภาษาสคริปต์ = JavaScript> การแจ้งเตือน ('ขอแสดงความยินดีการลงทะเบียนสำเร็จ!') </script>");
response.write ("<ภาษาสคริปต์ = JavaScript> window.parent.frameleft.location.href = 'main.html' </script>");
สิ่งนี้จะแก้ปัญหาของ ASP.NET Framework Page Jump Jump Jump Jump ในความเป็นจริงวิธีนี้ใช้โดยทั่วไปใน ASP และ PHP
"window.location.href" และ "location.href" ถูกข้ามไปยังหน้านี้
"parent.location.href" คือการกระโดดหน้าก่อนหน้า
"top.location.href" คือการกระโดดหน้านอกสุด
ยกตัวอย่าง:
ถ้า A, B, C, D เป็น JSP ทั้งหมด, D เป็น iframe ของ C, C คือ iframe ของ B, b คือ iframe ของ A ถ้า JS เขียนเป็น D
"window.location.href", "location.href": D Page Jump
"parent.location.href": หน้า C กระโดด
"top.location.href": หน้ากระโดด
หากมีแบบฟอร์มในหน้า D
<form>: D Page กระโดดหลังจากส่งแบบฟอร์ม
<form target = "_ blank">: หน้าใหม่ปรากฏขึ้นหลังจากส่งแบบฟอร์ม
<form target = "_ parent">: หน้า C กระโดดหลังจากส่งแบบฟอร์ม
<form target = "_ top">: หน้าการกระโดดหลังจากส่งแบบฟอร์ม
เกี่ยวกับการรีเฟรชหน้าเว็บต่อไปนี้เขียนในหน้า D:
"parent.location.reload ();": C หน้ารีเฟรช (แน่นอนคุณสามารถใช้วัตถุที่เปิดของหน้าต่างลูกเพื่อรับวัตถุหน้าต่างแม่: window.opener.document.location.reload ();)
"top.location.reload ();": หน้าการรีเฟรช