Apa perbedaan antara
window.location.href="http://example.com";
window.location.replace("http://example.com");
window.location.assign("http://example.com");
Saya membaca di banyak forum yang window.location.assign()
hanya menggantikan riwayat sesi saat ini dan karenanya tombol kembali browser tidak akan berfungsi. Namun, saya tidak dapat mereproduksi ini.
function fnSetVariable() {
//window.location.href = "http://example.com";
window.location.replace("http://example.com");
//window.location.assign("http://example.com");
}
<a onmouseover="fnSetVariable();"
href="PageCachingByParam.aspx?id=12" >
CLICK
</a>
javascript
dom
location
milan_9211
sumber
sumber
Jawaban:
Ini melakukan hal yang sama:
Mereka cukup menavigasi ke URL baru. The
replace
metode pada menavigasi sisi lain untuk URL tanpa menambahkan catatan baru untuk sejarah.Jadi, apa yang Anda baca dalam berbagai bentuk itu tidak benar. The
assign
Metode tidak menambahkan catatan baru untuk sejarah.Referensi: http://developer.mozilla.org/en/window.location
sumber
assign()
? Dari jawaban ini, dan dokumennya, kedengarannya identik denganlocation = ...
.Bagian tentang tidak dapat menggunakan tombol Kembali adalah salah tafsir yang umum. window.location.replace (URL) membuang entri SATU teratas dari daftar riwayat halaman, dengan menimpanya dengan entri baru, sehingga pengguna tidak dapat dengan mudah kembali ke SATU halaman web tertentu. Fungsi ini TIDAK menghapus seluruh daftar riwayat halaman, juga tidak membuat tombol Kembali sepenuhnya tidak berfungsi.
(NO fungsi atau kombinasi parameter yang saya tahu perubahan dapat atau menimpa entri daftar sejarah yang Anda tidak memiliki benar-benar pasti - browser umumnya impelement batasan keamanan ini hanya bahkan tidak mendefinisikan operasi apapun bahwa kekuatan sama sekali mempengaruhi entri selain yang teratas di daftar riwayat halaman. Saya ngeri memikirkan hal-hal pengecut apa yang mungkin dilakukan malware jika fungsi seperti itu ada.)
Jika Anda benar-benar ingin membuat tombol Kembali tidak berfungsi (mungkin tidak "ramah pengguna": pikirkan lagi apakah itu yang benar - benar ingin Anda lakukan), "buka" jendela baru. (Anda dapat "membuka" munculan yang bahkan tidak memiliki tombol "Kembali" ... tetapi munculan tidak begitu populer akhir-akhir ini :-) Jika Anda ingin tetap menampilkan laman Anda apa pun yang dilakukan pengguna ( sekali lagi "keramahan pengguna" dipertanyakan), atur penangan window.onunload yang hanya memuat ulang halaman Anda lagi bersih dari awal setiap saat.
sumber