Adakah yang bisa memberi tahu saya perbedaan antara window.location.hrefdan top.location.href?
Dan juga di mana harus menggunakan yang mana.
Dan mana yang lebih baik saat mengalihkan setelah panggilan ajax di mvc?
Adakah yang bisa memberi tahu saya perbedaan antara window.location.hrefdan top.location.href?
Dan juga di mana harus menggunakan yang mana.
Dan mana yang lebih baik saat mengalihkan setelah panggilan ajax di mvc?
Jawaban:
window.location.href mengembalikan lokasi halaman saat ini.
top.location.href(yang merupakan alias dari window.top.location.href) mengembalikan lokasi jendela paling atas dalam hierarki jendela. Jika sebuah jendela tidak memiliki induk, itu topadalah referensi untuk dirinya sendiri (dengan kata lain, window=== window.top).
topberguna baik saat Anda berurusan dengan bingkai dan saat berurusan dengan jendela yang telah dibuka oleh halaman lain. Misalnya, jika Anda memiliki halaman yang dipanggil test.htmldengan skrip berikut:
var newWin=window.open('about:blank','test','width=100,height=100');
newWin.document.write('<script>alert(top.location.href);</script>');
Lansiran yang dihasilkan akan memiliki jalur lengkap ke test.html - bukan tentang: kosong, yang window.location.hrefakan ditampilkan.
Untuk menjawab pertanyaan Anda tentang pengalihan, lanjutkan dengan window.location.assign(url);
top.location.hrefsebuah alias dari window.top.location.href? Saya pikir apa yang disebut variabel "global" sebenarnya adalah singkatan dari propertiwindow sedangkan alias menyiratkan itu adalah variabel independen yang menunjuk ke tempat yang sama.
topobjek lebih masuk akal di dalam bingkai. Di dalam bingkai, windowmengacu pada jendela bingkai saat ini sementara topmengacu pada jendela terluar yang berisi bingkai. Begitu:
window.location.href = 'somepage.html';berarti memuat somepage.htmldi dalam bingkai.
top.location.href = 'somepage.html';berarti memuat somepage.htmldi jendela browser utama.
topmengacu pada objek jendela yang berisi semua bingkai saat ini (ayah dari sisa jendela). windowadalah arus window.
http://www.howtocreate.co.uk/tutorials/javascript/browserinspecific
jadi top.location.hrefbisa berisi link halaman "master" yang berisi semua frame, sementara window.location.hrefhanya berisi link halaman "saat ini".
Yang pertama menambahkan item ke riwayat Anda sehingga Anda dapat (atau seharusnya dapat) mengklik "Kembali" dan kembali ke halaman saat ini.
Yang kedua menggantikan item riwayat saat ini sehingga Anda tidak bisa kembali ke sana.
Lihat window.location:
assign(url): Muat dokumen di URL yang disediakan.
replace(url): Ganti dokumen saat ini dengan yang ada di URL yang disediakan. Perbedaan dari assign()metode ini adalah bahwa setelah menggunakan replace()halaman saat ini tidak akan disimpan dalam riwayat sesi, artinya pengguna tidak akan dapat menggunakan tombol Kembali untuk menavigasi ke sana.
window.location.href = url;
lebih disukai daripada:
window.location = url;