Herkes bana arasındaki farkı söyleyebilir window.location.hrefve 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.hrefve 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, topkendisine bir referanstır (başka bir deyişle, window=== window.top).
tophem ç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.hrefgeri dönecektir.
Yönlendirme ile ilgili sorunuza cevap vermek için, ile gidin window.location.assign(url);
top.location.hrefbir takma ad ait window.top.location.href? "Global" olarak adlandırılan bir değişkenin, bir özelliğin kısaltması olduğunu , windowdiğer adın ise aynı yere işaret eden bağımsız bir değişken olduğunu ima ettiğini düşündüm .
topnesne çerçevelerin içinde daha anlamlıdır. Bir çerçevenin içinde, windowgeçerli çerçevenin penceresini topifade 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.htmlana tarayıcı penceresinde yükleme anlamına gelir .
toptüm geçerli çerçeveleri içeren pencere nesnesini ifade eder (pencerelerin geri kalanının babası). windowakı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.hrefyalnı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;