谁能告诉我之间的差异window.location.href
和top.location.href
?
以及在哪里使用哪一个。
在mvc中进行ajax调用后进行重定向时,哪一种更好?
Answers:
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的完整路径– 而不是 about:blank,这window.location.href
将返回结果。
要回答有关重定向的问题,请使用 window.location.assign(url);
top.location.href
一个别名的window.top.location.href
?我认为所谓的“全局”变量实际上是的属性的简写,window
而别名意味着它是指向同一位置的独立变量。
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;