-
window.location.href,location.href,this.location.href是本页面跳转,本框架跳转,如果在iframe里面,是跳不出去的,显示的url也是父页面的url,例如:如果希望跳转页面,但又不希望url变化的话可以使用,当然也可以使用history.pushState({}, '', '/new_url');来添加一个假的页面。 -
parent.location.href是上一层页面跳转。 -
top.location.href是最外层的页面跳转。 -
当你使用后两种进行页面跳转时,再使用
history.go(-1),有可能会出现跳不回去,跳到其他地方的问题,(为什么是有可能,我不知道,因为我觉得是跳不回去的,但有时候就是可以,也许是浏览器自身的缓存吧),这时候你可以使用下述代码,其中document.referrer是获取上一页的url,如果获取不到就跳转自己指定的url。
//分享页 返回上一页
if (typeof document.referrer === '') {
// 没有来源页面信息的时候,改成首页URL地址
$('.jsBack').attr('href', '/');
}
- 为什么我们不直接指定跳转
url呢,解释不了,所以我也没有使用步骤 4 的方法,我也是直接跳转指定url
举例说明:
如果A,B,C,D都是html,D是C的iframe,C是B的iframe,B是A的iframe,如果D中js这样写
window.location.href,location.href,this.location.href:D页面内部跳转
parent.location.href:跳转C页面那一层
top.location.href:跳转至最外层,即你直接url访问的页面,如果是A页面,则直接到A的同级
如果D页面中有form的话,
<form>: form提交后D页面跳转
<form target="_blank">: form提交后弹出新页面
<form target="_parent">: form提交后C页面跳转
<form target="_top"> : form提交后A页面跳转