js之页面跳转------(*.location.href )

283 阅读1分钟
  1. window.location.hreflocation.hrefthis.location.href 是本页面跳转,本框架跳转,如果在iframe里面,是跳不出去的,显示的 url 也是父页面的 url,例如:如果希望跳转页面,但又不希望url变化的话可以使用,当然也可以使用history.pushState({}, '', '/new_url');来添加一个假的页面。

  2. parent.location.href 是上一层页面跳转。

  3. top.location.href 是最外层的页面跳转。

  4. 当你使用后两种进行页面跳转时,再使用history.go(-1),有可能会出现跳不回去,跳到其他地方的问题,(为什么是有可能,我不知道,因为我觉得是跳不回去的,但有时候就是可以,也许是浏览器自身的缓存吧),这时候你可以使用下述代码,其中document.referrer是获取上一页的url,如果获取不到就跳转自己指定的url

//分享页 返回上一页
if (typeof document.referrer === '') {
 // 没有来源页面信息的时候,改成首页URL地址
 $('.jsBack').attr('href', '/');
}
  1. 为什么我们不直接指定跳转url呢,解释不了,所以我也没有使用步骤 4 的方法,我也是直接跳转指定url
举例说明:

如果A,B,C,D都是html,D是C的iframe,C是B的iframe,B是A的iframe,如果D中js这样写

window.location.hreflocation.hrefthis.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页面跳转