前端页面跳转

前端页面跳转、刷新

一、location.href的用法

let url = "www.baidu.com";

1、当前页面打开url页面

self.location.href="url";
// 等同于
this.location.href="url";
window.location.href="url";
location.href="url"; 

2、在父窗口打开此url窗口

parent.location.href="url";

3、在顶层页面打开url(跳出框架)

top.location.href="url";

4、附1:刷新当前页面

  • Ⅰ、window.location.href=window.location.href有提交数据时,则是向指定的url提交数据
  • Ⅱ、window.location.Reload(),有提交数据时,会提示是否提交
  • Ⅲ、window.location.replace()可以导向另外一个URL

案例说明:

如果A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe

D中的js:

window.location.href”、“location.href”:D页面跳转
parent.location.href”:C页面跳转
top.location.href”:A页面跳转

D页面中有form:

<form>: form提交后D页面跳转
<form target="_blank">: form提交后弹出新页面
<form target="_parent">: form提交后C页面跳转
<form target="_top"> : form提交后A页面跳转

页面刷新,D 页面:

parent.location.reload()”: C页面刷新 (也可以使用子窗口的 opener 对象来获得父窗口的对象: window.opener.document.location.reload()

top.location.reload()”: A页面刷新

5、window.location.replace和window.location.href区别

当在微信公总号中 点击手机系统自带的默认返回按钮时:页面直接退出了公众号而不是返回到上一页, 是因为,跳转当前页的时候没有记录历史路由,用的是window.location.replace,而不是window.location.href或者vue-router

有3个页面 a,b,c,如果当前页面是c页面,并且c页面是这样跳转过来的:a->b->c

  • Ⅰ:b->c 是通过window.location.replace(“…xx/c”) 此时b页面的url会被c页面代替,并且点击后退按钮时会回退到a页面(最开始的页面)可以用来刷新页面
  • Ⅱ:b->c是通过window.location.href(“…xx/c”) 此时b页面的路径会被c页面代替,但是点击回按钮后页面回退的是b页面

两者的区别: 两者后退时所回退的页面不一样

6、附2:自动刷新(HTML实现)

页面自动刷新:把如下代码加入<head>区域中

<!-- 2指每隔2秒刷新一次页面 -->
`<meta http-equiv="refresh" content="2">`

页面自动跳转:把如下代码加入<head>区域中

<!-- 2指隔2秒后跳转到`http://www.baidu.com`页面 -->
`<meta http-equiv="refresh" content="2;url=http://www.baidu.com">`

二、window.open的用法

1、语法:

window.open(strUrl, strWindowName, [strWindowFeatures])

strUrl:要在新打开的窗口中加载的URL。

strWindowName:新窗口的名称。

可选的参数如下

  • _blank :打开一个新的标签页。这个是默认值
  • _parent :父页面打开
  • _self :当期页面打开
  • _top :顶层页面打开
  • name:窗口名称

strWindowFeatures:这是一个可选参数,列出新窗口的特征。

2、Location.href属性与window.open()方法的区别:

  • Location.href属性是对当前浏览器窗口的URL地址对象的参考;window.open()方法打开一个新的窗口。
  • Location.href属性一般用于页面的迭代,也就是重新定位当前页
  • window.open()方法可以通过新开窗口或者说新开标签页打开一个网址,而location.href属性只能在当前页打开一个网址。

3、附:返回页面

window.history.back(); // 返回到上一页(在当前窗口 )
window.history.go(-1);

三、navigate

【说明】:navigate的效果是在当前页面直接跳转至指定路由,当前页面会被覆盖掉,而且不会对跳转后的页面数据进行刷新,也就是说,跳转后的页面显示的还是旧数据。

假设指定需要跳转的目标路由是“/class/student”。

this.router.navigate(['/class/student'])

四、document.getElementById(“a标签id”).click();

【说明】:这种方式的效果是执行代码自动触发html中id为openStudent的a标签中的链接,进而跳转进入指定页面,这样就不用手动点击a标签的链接进入指定页面。

假设指定需要跳转的目标路由是“/class/student”。

document.getElementById("openStudent").click();

五、routerLink

【说明】:a标签中使用[routerLink],手动点击a标签中的链接,[routerLink]的效果是另外打开一个页面,在新页面中进入指定路由“/class/student”并且会刷新页面数据,而不是在当前页面直接跳转至指定路由,如果路由“/class/student”已经在其他页面打开,那么[routerLink]会直接跳转至路由“/class/student”对应的页面,但不会刷新页面数据。

假设指定需要跳转的目标路由是“/class/student”。

<a class="btn " appClick [target]='"blank"' [routerLink]='/class/student' ><span id="openStudent">进入学生信息界面</span></a>

routerLink的几种写法:

  • (1).[routerLink]=‘/class/student’:斜杠开头表示使用绝对路径进行路由导航;
  • (2).[routerLink]=‘…/student’:两个点开头表示相对于父路径进行路由导航;
  • (3).[routerLink]=‘./student’:一个点开头表示相对于当前路径进行路由导航。
  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值