Хтось може сказати мені різницю між window.location.hrefі top.location.href?
А також де використовувати який.
І який з них буде кращим при перенаправленні після виклику ajax у mvc?
Хтось може сказати мені різницю між window.location.hrefі top.location.href?
А також де використовувати який.
І який з них буде кращим при перенаправленні після виклику ajax у mvc?
Відповіді:
window.location.href повертає розташування поточної сторінки.
top.location.href(що є псевдонімом window.top.location.href) повертає розташування самого верхнього вікна в ієрархії вікна. Якщо у вікна немає батьків, topце посилання на нього самого (іншими словами, window=== window.top).
topкорисний як при роботі з фреймами, так і при роботі з вікнами, відкритими іншими сторінками. Наприклад, якщо у вас є сторінка test.htmlіз наступним сценарієм:
var newWin=window.open('about:blank','test','width=100,height=100');
newWin.document.write('<script>alert(top.location.href);</script>');
Отримане сповіщення матиме повний шлях до test.html - не про: blank, тобто те, window.location.hrefщо повернеться.
Щоб відповісти на своє запитання щодо переадресації, скористайтесь window.location.assign(url);
top.location.hrefв псевдонім з window.top.location.href? Я думав , що так званий «глобальний» змінна дійсно скорочена для властивості в windowтой час як псевдонім означає , що незалежна змінна , яка вказує на те ж місце.
topоб'єкт має більше сенсу всередині фреймів. Всередині кадру, windowвідноситься до вікна поточного кадру, тоді як topдо самого зовнішнього вікна, що містить кадри. Так:
window.location.href = 'somepage.html';означає навантаження somepage.htmlвсередині рами.
top.location.href = 'somepage.html';означає завантаження somepage.htmlв основному вікні браузера.
topвідноситься до об'єкта вікна, який містить усі поточні кадри (батько решти вікон). window- струм window.
http://www.howtocreate.co.uk/tutorials/javascript/browserinspecific
тому top.location.hrefможе містити посилання на головну сторінку, що містить усі кадри, тоді як window.location.hrefпросто містить посилання на поточну сторінку.
Перший додає елемент до вашої історії, завдяки чому ви можете (або повинні мати можливість) натиснути «Назад» і повернутися до поточної сторінки.
Другий замінює поточний елемент історії, тому ви не можете до нього повернутися.
Дивіться window.location:
assign(url): Завантажте документ за вказаною URL-адресою.
replace(url): Замініть поточний документ на документ за вказаною URL-адресою. Відмінність від assign()методу полягає в тому, що після використання replace()поточної сторінки не буде збережено в історії сеансів, тобто користувач не зможе скористатися кнопкою Назад для переходу до неї.
window.location.href = url;
надає перевагу:
window.location = url;