Rumah  >  Artikel  >  hujung hadapan web  >  2 penyelesaian kepada masalah kehilangan perujuk dalam JS melompat dalam kemahiran IE_javascript

2 penyelesaian kepada masalah kehilangan perujuk dalam JS melompat dalam kemahiran IE_javascript

WBOY
WBOYasal
2016-05-16 16:41:421408semak imbas

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:

Salin kod Kod adalah seperti berikut:

fungsi goToPage(url) {
Jika (isIE) {
// pelayar IE
        var frm = document.createElement("form");
frm.action = url;
frm.method = "DAPATKAN";
            document.body.appendChild(frm);
frm.submit();
} lain {
//Bukan IE
location.href = url;
}
}

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:

Salin kod Kod adalah seperti berikut:

//define untuk semua pelayar
fungsi goto(url) {
Location.href = url;
}

//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.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn