Pentingnya Penjual
Ada header referer dalam permintaan HTTP, yang menunjukkan sumber lalu lintas saat ini. Misalnya, klik tautan di www.sina.com.cn/sports/ untuk mencapai beranda cctv.com, dan kemudian penerima pengirimnya adalah www.sina.com.cn/sports/. Dalam JavaScript, kita bisa mendapatkan informasi yang sama melalui Document.referrer. Melalui informasi ini, kita dapat mengetahui saluran apa yang dialami pengunjung ke halaman saat ini. Ini sangat penting untuk analisis web.
Namun, karena berbagai alasan, kadang -kadang pembaca yang dibaca dalam JavaScript adalah string kosong. Mari kita ringkas keadaan apa yang akan hilang.
Ubah Objek Lokasi untuk Navigasi Halaman
Objek lokasi adalah objek yang sangat praktis untuk navigasi halaman. Karena dia memungkinkan Anda untuk mengubah hanya sebagian dari URL. Misalnya, beralih dari nama domain CN ke nama domain COM, bagian lain tetap tidak berubah:
Salinan kode adalah sebagai berikut:
window.location.hostname = "example.com";
Namun, memodifikasi metode navigasi halaman dengan navigasi halaman akan mengakibatkan hilangnya pengirim di bawah IE.
Mengembalikan string kosong di bawah IE5.5+
Chrome 3.0+, Firefox 3.5, Opera9.6, Safari 3.2.2 Semua kembali ke halaman web sumber secara normal
Buka jendela baru dengan jendela.open
Contoh:
Salinan kode adalah sebagai berikut:
<a href = "#" onclick = "window.open ('http://www.google.com')"> Akses Google </a>
Mengklik tautan ini akan membuka situs web Google di jendela baru.
Salinan kode adalah sebagai berikut:
JavaScript: Alert (Document.referrer)
Hasil tes:
Mengembalikan string kosong di bawah IE5.5+
Chrome 3.0+, Firefox 3.5, Opera9.6, Safari 3.2.2 Semua kembali ke halaman web sumber secara normal
Jika diarahkan dengan cara ini dengan nama domain yang sama, maka kita dapat mengakses objek windoww.opener untuk mendapatkan informasi pengirim yang hilang. Kodenya adalah sebagai berikut:
Salinan kode adalah sebagai berikut:
<type skrip = "Teks/JavaScript">
var referrer = document.referrer;
if (! Referrer) {
mencoba {
if (window.opener) {
// Jika domain silang di bawah IE, pengecualian izin akan dilemparkan
// safari dan chrome tidak memiliki sifat
pengirim = window.opener.location.href;
}
}
catch (e) {}
}
</script>
Jika Anda menyeberangi domain, Anda akan tidak berdaya ~
Seret mouse untuk membuka jendela baru
Drag dan drop mouse adalah kebiasaan pengguna yang sangat populer saat ini. Namun, halaman yang dibuka dengan cara ini pada dasarnya semua pengirim hilang. Selain itu, dalam hal ini, tidak mungkin menggunakan metode Window.Opener untuk mendapatkan pengirim yang hilang.
Diuji:
Maxthon 2.5.2, Plugin Firegesture untuk Firefox, Chrome 3.0+, Opera 9.6, Safari 3.2.
Klik tautan internal flash
Saat Anda mengklik Flash untuk mencapai situs web lain, situasi pengirim lebih berantakan.
Di IE, nilai yang dibacakan melalui dokumen. Ini mungkin bug dalam implementasi IE. Pada saat yang sama, nilai ini menunjuk ke alamat file flash, bukan alamat halaman web sumber.
Setelah mengklik Flash di bawah Chrome 4.0 untuk mencapai jendela baru, pengirim juga menunjuk ke alamat file flash, bukan alamat halaman web sumber.
Chrome 3.0 dan Safari 3.2 adalah sama, dan keduanya akan kehilangan informasi pengirim.
Opera, seperti Firefox, nilai pengirim adalah alamat halaman web sumber.
Https melompat ke http
Saat melompat dari situs web HTTP ke situs web HTTP, browser tidak akan mengirim pengirim. Perilaku browser utama ini adalah sama.
Misalnya, ketika kami menggunakan Google Reader atau Gmail di bawah HTTPS, kami mengklik tautan untuk pergi ke situs web lain secara teknis, tidak ada perbedaan antara akses tersebut dan pengguna secara langsung mengetik URL.
Dampak kerugian pengarah pada pemantauan lalu lintas iklan
Jika pengirim hilang, analisis web akan kehilangan bagian yang sangat penting dari informasi, terutama untuk lalu lintas iklan, tidak mungkin untuk mengetahui sumber yang sebenarnya. Saat ini, banyak situs web di China yang menggunakan jendela penggunaan iklan Google AdSense. Buka untuk membuka tautan iklan, sehingga pengarah akan hilang di bawah IE. . Oleh karena itu banyak alat statistik lalu lintas akan mengklasifikasikan bagian lalu lintas ini sebagai "lalu lintas langsung", yang setara dengan pengguna mengetik URL secara langsung.
Dalam hal ini, perlu untuk memungkinkan plagiar iklan untuk menambahkan parameter pelacakan spesifik ke URL halaman arahan saat melayani iklan.
Misalnya, jika iklan flash diklik, URL untuk tiba di http://www.example.com/. http: // www.example.com/?src=sina, mirip dengan metode ini, dan kemudian gunakan kode JavaScript untuk mengekstrak parameter SRC ini di halaman pendaratan, sehingga Anda bisa mendapatkan informasi sumber iklan.
Saat melayani Google AdWords, sistem latar belakang memiliki opsi "Tag Otomatis". dan backend iklan AdWords. Dengan cara ini Anda dapat mengetahui kampanye mana yang sesuai dengan lalu lintas iklan, sumber iklan dan kata kunci iklan mana dan informasi lainnya. Ini sebenarnya mirip dengan ide yang disebutkan di atas. Hanya saja Google telah secara otomatis membuat modifikasi URL untuk Anda.
Solusi untuk mengosongkan referensi di bawah IE
Jika metode Window.location.href digunakan untuk melompat di IE, nilai referer kosong. Dan jika referer melompat dalam tag, referer tidak akan kosong. Jadi, kode berikut dapat menyelesaikan masalah yaitu ini
Salinan kode adalah sebagai berikut:
fungsi gotourl (url) {
if (window.vbarray) {
var gotolink = document.createElement ('a');
gotolink .href = url;
Document.Body.AppendChild (GOTOLINK);
gotolink .click ();
}kalau tidak{
window.location.href = url;
}
}
Melarang browser untuk tidak membawa referensi saat mengakses tautan
Ketika kami mengklik tautan dari satu situs web untuk memasukkan halaman lain, browser akan menambahkan nilai referensi ke header untuk mengidentifikasi halaman sumber kunjungan ini. Tetapi logo semacam ini dapat membocorkan privasi pengguna.
• Gunakan solusi HTML5 yang baru ditambahkan, gunakan rel = "Noreferrer" untuk mendeklarasikan atribut koneksi sebagai Noreferrer saat ini, hanya Chrome4+ yang mendukungnya.
• Gunakan halaman perantara, tetapi sebenarnya mengirim pengirim, seperti menggunakan steering koneksi Google, noreferrer.js.
• Gunakan protokol JavaScript untuk menautkan untuk ditransfer, lihat instruksi di bawah ini.
Jendela baru setara dengan target = "_ blank":
Salinan kode adalah sebagai berikut:
fungsi open_window (tautan) {
var arg = '/u003cscript/u003location.replace("'+link+'")/u003c/script/u003e';
window.open ('javascript: window.name;', arg);
}
</code>
Beralih ke koneksi setara dengan target = "_ self":
Salinan kode adalah sebagai berikut:
fungsi redirect (tautan) {
var arg = '/u003cscript/u003etop.location.replace ("'+link+'")/u003c/skrip/u003e';
var iframe = document.createElement ('iframe');
iframe.src = 'javascript: window.name;';
iframe.name = arg;
document.body.appendChild (iframe);
}
</code>