Adakah yang bisa memberi tahu saya perbedaan antara window.location.href
dan top.location.href
?
Dan juga di mana harus menggunakan yang mana.
Dan mana yang lebih baik saat mengalihkan setelah panggilan ajax di mvc?
javascript
asp.net-mvc
Egaliter
sumber
sumber
Jawaban:
window.location.href
mengembalikan lokasi halaman saat ini.top.location.href
(yang merupakan alias dariwindow.top.location.href
) mengembalikan lokasi jendela paling atas dalam hierarki jendela. Jika sebuah jendela tidak memiliki induk, itutop
adalah referensi untuk dirinya sendiri (dengan kata lain,window
===window.top
).top
berguna baik saat Anda berurusan dengan bingkai dan saat berurusan dengan jendela yang telah dibuka oleh halaman lain. Misalnya, jika Anda memiliki halaman yang dipanggiltest.html
dengan 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.href
akan ditampilkan.Untuk menjawab pertanyaan Anda tentang pengalihan, lanjutkan dengan
window.location.assign(url);
sumber
top.location.href
sebuah alias dariwindow.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.top
objek lebih masuk akal di dalam bingkai. Di dalam bingkai,window
mengacu pada jendela bingkai saat ini sementaratop
mengacu pada jendela terluar yang berisi bingkai. Begitu:window.location.href = 'somepage.html';
berarti memuatsomepage.html
di dalam bingkai.top.location.href = 'somepage.html';
berarti memuatsomepage.html
di jendela browser utama.Dua objek menarik lainnya adalah
self
danparent
.sumber
top
mengacu pada objek jendela yang berisi semua bingkai saat ini (ayah dari sisa jendela).window
adalah aruswindow
.http://www.howtocreate.co.uk/tutorials/javascript/browserinspecific
jadi
top.location.href
bisa berisi link halaman "master" yang berisi semua frame, sementarawindow.location.href
hanya berisi link halaman "saat ini".sumber
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 dariassign()
metode ini adalah bahwa setelah menggunakanreplace()
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;
sumber