Saya telah menyelesaikan kasus di mana pengirim hilang dalam berbagai metode lompatan halaman. Disebutkan bahwa di IE, ketika halaman diarahkan menggunakan metode seperti location.href = "a.html", nilai dokumen.referrer di halaman target akan kosong. Ini harus menjadi bug di IE.
Dalam kebanyakan kasus, masalah ini tidak akan menyebabkan masalah kita, tetapi kadang -kadang kita harus menggunakan JavaScript untuk melompat, dan pada saat yang sama kita harus mengumpulkan dokumen. Refer di halaman berikutnya, jadi kita harus memikirkan cara lain.
Formulir Dapatkan Metode
Hal pertama yang terlintas dalam pikiran adalah menggunakan formulir formulir untuk memulai permintaan GET menggunakan JS. Kode terlihat seperti ini:
Salinan kode adalah sebagai berikut:
fungsi gotopage (url) {
if (isie) {
// IE browser
var frm = document.createElement ("Form");
frm.action = url;
frm.method = "get";
Document.Body.AppendChild (FRM);
frm.submit ();
} kalau tidak {
// non -e
location.href = url;
}
}
Metode ini dapat berfungsi seperti yang diharapkan, dan dokumen. Referrer di halaman target dapat menunjuk ke halaman sebelumnya secara normal.
Metode klik simulasi elemen
Setelah mencari online, saya menemukan bahwa blog Situ Zhengmei merekam cara lain untuk menangani masalah ini:
Salinan kode adalah sebagai berikut:
// Tentukan untuk semua browser
fungsi goto (url) {
location.href = url;
}
// Tentukan kembali untuk IE
if (isie) {
fungsi goto (url) {
var referlink = document.createElement ('a');
Referlink.href = url;
Document.Body.AppendChild (Referlink);
referlink.click ();
}
}
Prinsipnya sangat sederhana. Pertama -tama buat elemen A, tentukan atribut HREF -nya sebagai tautan target, dan kemudian gunakan JS untuk memicu acara kliknya. Setelah pengujian, Document.referrer juga dapat diambil secara normal di halaman target.
Kode metode ini lebih pendek dan harus lebih baik dari solusi di atas menggunakan formulir bentuk.