Apa metode yang disukai untuk digunakan untuk mengubah lokasi halaman web saat ini menggunakan JavaScript? Saya telah melihat window.navigate dan document.location digunakan. Apakah ada perbedaan perilaku? Apakah ada perbedaan dalam implementasi browser?
javascript
html
navigation
dthrasher
sumber
sumber
window.location.href
adalah implementasi yang lengkap, tetapiwindow.location
mencapai hal yang sama. Lihat docs.sun.com/source/816-6408-10/location.htm : "Jika Anda menetapkan string kelocation
properti objek, JavaScript membuatlocation
objek dan menetapkan string itu kehref
propertinya."window.location
tetapi itu tidak selalu menunjukkan cara baik: developer.mozilla.org/en/window.location .window.location.href = 'URL';
dan jugawindow.location.assign('URL');
metode yang dirancang untuk memuat ulang halaman baru. Informasi lebih lanjut dapat ditemukan di w3schools.com/jsref/obj_location.aspwindow.navigate
adalah metode berpemilik, yang digunakan oleh Internet Explorer (saya perhatikan yakin apakah browser lain menirunya untuk kompatibilitas, Chrome tidak).document.location
atauwindow.location
objek standar (lihat berbagai spesifikasi HTML / HTML5 / DOM).document.location = someURL
(atauwindow.location = someURL
) mungkin didukung karena kode lawas. Cara yang tepat untuk melakukannya adalahdocument.location.href = someURL
, atau mungkindocument.location.assign(someURL)
.sumber
document.locatio n adalah properti string read-only (usang tetapi masih ada), digantikan oleh document.url .
sumber
window.location
juga mempengaruhi ke bingkai,bentuk terbaik yang saya temukan adalah:
Dan yang lebih buruk adalah:
Saya melakukan tes browser besar-besaran, dan beberapa IE langka dengan beberapa plugin tidak terdefinisi dengan bentuk kedua.
sumber
window.location
akan mempengaruhi target browser Anda. document.location hanya akan mempengaruhi browser Anda dan bingkai / iframe.sumber
window.navigate
TIDAK didukung di beberapa browser, sehingga harus dihindari. Salah satu metode lain yang menggunakan properti lokasi adalah pendekatan yang paling dapat diandalkan dan konsistensumber
Saya akan pergi dengan
window.location = "http://...";
. Saya telah mengkode JavaScript lintas-browser selama beberapa tahun, dan saya tidak pernah mengalami masalah dalam menggunakan pendekatan ini.window.navigate
danwindow.location.href
sepertinya agak aneh bagiku.sumber
Sebenarnya tidak ada perbedaan; ada sekitar 5 metode berbeda untuk melakukannya. Namun, yang paling sering saya lihat adalah
document.location
danwindow.location
karena didukung oleh semua browser utama. (Saya pribadi belum pernah melihatwindow.navigate
digunakan dalam kode produksi, jadi mungkin itu tidak memiliki dukungan yang sangat baik?)sumber
dukungan
document.location
juga bagus meskipun metode yang sudah usang. Saya telah menggunakan metode ini untuk sementara waktu tanpa masalah. Anda dapat merujuk di sini untuk detail lebih lanjut:https://developer.mozilla.org/en-US/docs/Web/API/document.location
sumber
Anda dapat memindahkan halaman menggunakan
sumber