Saya pernah menyusun situasi kehilangan perujuk dalam pelbagai kaedah lompat halaman, yang menyebut bahawa dalam IE, gunakan kaedah seperti location.href = "a.html" untuk melompat ke halaman , nilai document.referrer dalam halaman sasaran akan kosong. Ini sepatutnya menjadi pepijat dalam IE.
Dalam kebanyakan kes, masalah ini tidak akan menyebabkan kita mengalami masalah, tetapi kadangkala kita perlu menggunakan JavaScript untuk melompat dan pada masa yang sama mengumpul dokumen. rujuk pada halaman seterusnya, kemudian kita perlu memikirkan kaedah lain.
Kaedah Borang GET
Perkara pertama yang terlintas di fikiran ialah menggunakan borang Borang dan memulakan permintaan GET dengan JS. Kod adalah serupa dengan yang berikut:
Kaedah ini berfungsi seperti yang diharapkan, document.referrer dalam halaman sasaran boleh menunjuk ke halaman sebelumnya secara normal.
Kaedah klik simulasi elemen
Selepas mencari dalam talian, saya menemui penyelesaian lain untuk masalah ini yang direkodkan di blog Situ Zhengmei:
//takrif semula untuk IE
jika (isIE) {
Fungsi goto(url) {
var referLink = document.createElement('a');
referLink.href = url;
document.body.appendChild(referLink);
referLink.click();
}
}
Prinsipnya sangat mudah buat elemen A, tentukan atribut href sebagai pautan sasaran, kemudian gunakan JS untuk mencetuskan acara kliknya. Selepas ujian, document.referrer boleh diperolehi seperti biasa pada halaman sasaran.
Kod kaedah ini lebih pendek dan sepatutnya lebih baik daripada penyelesaian di atas menggunakan borang.