ฉันได้จัดเรียงกรณีที่ผู้อ้างอิงหายไปในวิธีการกระโดดหน้าต่างๆ มีการกล่าวถึงว่าใน IE เมื่อหน้าถูกเปลี่ยนเส้นทางโดยใช้วิธีเช่น location.href = "A.HTML" ค่าของ document.referrer ในหน้าเป้าหมายจะว่างเปล่า นี่ควรเป็นข้อผิดพลาดใน IE
ในกรณีส่วนใหญ่ปัญหานี้จะไม่ทำให้เรามีปัญหา แต่บางครั้งเราต้องใช้ JavaScript เพื่อกระโดดและในเวลาเดียวกันเราต้องรวบรวมเอกสารอ้างอิงในหน้าถัดไปดังนั้นเราต้องคิดถึงวิธีอื่น
แบบฟอร์มรับวิธีการ
สิ่งแรกที่นึกถึงคือการใช้แบบฟอร์มเพื่อเริ่มการร้องขอ GET โดยใช้ JS รหัสมีลักษณะเช่นนี้:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น gotopage (url) {
ถ้า (isie) {
// คือเบราว์เซอร์
var frm = document.createElement ("Form");
frm.action = url;
frm.method = "get";
document.body.appendchild (FRM);
frm.submit ();
} อื่น {
// ไม่ใช่ ie
location.href = url;
-
-
วิธีนี้สามารถทำงานได้ตามที่คาดไว้และ document.referrer ในหน้าเป้าหมายสามารถชี้ไปที่หน้าก่อนหน้าได้ตามปกติ
วิธีการคลิกองค์ประกอบ A-Element
หลังจากค้นหาออนไลน์ฉันพบว่าบล็อกของ Situ Zhengmei บันทึกอีกวิธีหนึ่งในการจัดการกับปัญหานี้:
การคัดลอกรหัสมีดังนี้:
// กำหนดเบราว์เซอร์ทั้งหมด
ฟังก์ชั่น goto (url) {
location.href = url;
-
// กำหนดใหม่สำหรับ IE
ถ้า (isie) {
ฟังก์ชั่น goto (url) {
var referLink = document.createElement ('a');
regerLink.href = url;
document.body.appendchild (referlink);
regerlink.click ();
-
-
หลักการนั้นง่ายมาก ก่อนอื่นสร้างองค์ประกอบ A ระบุแอตทริบิวต์ HREF เป็นลิงค์เป้าหมายจากนั้นใช้ JS เพื่อทริกเกอร์เหตุการณ์การคลิก หลังจากการทดสอบ Document.referrer สามารถดึงข้อมูลได้ตามปกติในหน้าเป้าหมาย
รหัสของวิธีนี้สั้นกว่าและควรดีกว่าโซลูชันข้างต้นโดยใช้แบบฟอร์ม