Хтось може сказати мені різницю між 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;