Herkes bana arasındaki farkı söyleyebilir window.location.href
ve top.location.href
?
Ve ayrıca hangisinin nerede kullanılacağı.
Ve mvc'de bir ajax çağrısından sonra yeniden yönlendirme yaparken hangisi daha iyi olacak?
Herkes bana arasındaki farkı söyleyebilir window.location.href
ve top.location.href
?
Ve ayrıca hangisinin nerede kullanılacağı.
Ve mvc'de bir ajax çağrısından sonra yeniden yönlendirme yaparken hangisi daha iyi olacak?
Yanıtlar:
window.location.href
geçerli sayfanın konumunu döndürür.
top.location.href
(takma adıdır window.top.location.href
), pencere hiyerarşisindeki en üstteki pencerenin konumunu döndürür. Bir pencerenin ebeveyni yoksa, top
kendisine bir referanstır (başka bir deyişle, window
=== window.top
).
top
hem çerçevelerle uğraşırken hem de başka sayfalar tarafından açılan pencerelerle uğraşırken kullanışlıdır. Örneğin test.html
, aşağıdaki komut dosyasıyla çağrılan bir sayfanız varsa :
var newWin=window.open('about:blank','test','width=100,height=100');
newWin.document.write('<script>alert(top.location.href);</script>');
Sonuçta ortaya çıkan uyarı, test.html dosyasının tam yolunu içerecektir - about: blank değil , window.location.href
geri dönecektir.
Yönlendirme ile ilgili sorunuza cevap vermek için, ile gidin window.location.assign(url);
top.location.href
bir takma ad ait window.top.location.href
? "Global" olarak adlandırılan bir değişkenin, bir özelliğin kısaltması olduğunu , window
diğer adın ise aynı yere işaret eden bağımsız bir değişken olduğunu ima ettiğini düşündüm .
top
nesne çerçevelerin içinde daha anlamlıdır. Bir çerçevenin içinde, window
geçerli çerçevenin penceresini top
ifade ederken , çerçeveyi / çerçeveleri içeren en dıştaki pencereyi ifade eder. Yani:
window.location.href = 'somepage.html';
somepage.html
çerçevenin içine yükleme anlamına gelir .
top.location.href = 'somepage.html';
somepage.html
ana tarayıcı penceresinde yükleme anlamına gelir .
top
tüm geçerli çerçeveleri içeren pencere nesnesini ifade eder (pencerelerin geri kalanının babası). window
akımdır window
.
http://www.howtocreate.co.uk/tutorials/javascript/browserinspecific
bu nedenle top.location.href
, tüm çerçeveleri içeren "ana" sayfa bağlantısını içerirken window.location.href
yalnızca "geçerli" sayfa bağlantısını içerebilir .
İlki, geçmişinize "Geri" yi tıklayabileceğiniz (veya yapabilmeniz gereken) ve mevcut sayfaya geri dönebileceğiniz bir öğe ekler.
İkincisi, geçerli geçmiş öğesinin yerini alır, böylece ona geri dönemezsiniz.
Bakınız window.location
:
assign(url)
: Belgeyi sağlanan URL'ye yükleyin.
replace(url)
: Mevcut belgeyi, sağlanan URL’dekiyle değiştirin. assign()
Yöntemden farkı replace()
, geçerli sayfayı kullandıktan sonra oturum geçmişine kaydedilmeyecek olmasıdır, bu da kullanıcının geri gitmek için Geri düğmesini kullanamayacağı anlamına gelir.
window.location.href = url;
tercih edilir:
window.location = url;