当前位置: 首页 > news >正文

前端页面跳转的6大类方法及其使用场景特性分析

前端页面跳转的方法有很多种,总有一种适合你:

a标签跳转

在当前页面打开:

<a href="https://www.baidu.com">跳转</a>

在当新窗口打开,设置target属性为_blank:

<a href="https://www.baidu.com" target="_blank">跳转</a>

适用场景:

  • 页面中跳转固定的地址

js中模拟a标签跳转

function imitateClick(url){
	  let aEle = document.createElement("a");
	  aEle.setAttribute("href", url);
	  aEle.setAttribute("target", "_blank");
	  aEle.setAttribute("id", "previewJumpEle");
	  // 防止重复添加
	  if (!document.getElementById("previewJumpEle")) {
	    document.body.appendChild(aEle);
	  }
	  // 模拟点击
	  aEle.click();
	  (aEle.remove && aEle.remove()) || (aEle.removeNode && aEle.removeNode(true));
};
imitateClick('https://www.baidu.com');

适用场景:

  • js中直接做无感跳转,但是此方法有个弊端:经过验证,有的浏览器可能会拦截,慎用。

js中window对象location属性跳转

window.location.href = 'https://www.baidu.com';

top.window.location.href = 'https://www.baidu.com';

适用场景:

  • window.location.href是覆盖当前页面跳转,在iframe嵌套内页跳转只能改变iframe的src。
  • top.window.location.href是覆盖顶层地址跳转,在iframe嵌套内页跳转可以覆盖顶层地址打开新页面,且浏览器无拦截。

js中window对象的open方法跳转

新窗口打开一个链接:

window.open('https://www.baidu.com');

打开一个新的空白窗口(类似弹窗),并指定一些窗口特征,查看更多属性:

window.open('https://m.book118.com','','left=200,top=200,width=200,height=100');

适用场景:

  • window.open与top.window.open效果是一样的,都是新窗口打开页面;
  • window.open指定窗口特征,可当弹窗使用。
  • window.open在iframe中使用会被浏览器拦截。

重定向跳转

当前页面地址重定向:

window.location.replace('https://www.baidu.com');

顶层地址重定向:

top.window.location.replace('https://www.baidu.com');

适用场景:

  • window.location.replace()在iframe中使用只是重定向src地址。
  • top.window.location.replace()使用效果和top.window.location.href效果一样,可以在iframe中使用,且浏览器无拦截。

meta标签跳转

<meta http-equiv="refresh" content="5;url=http://www.w3school.com.cn">

content="5;url=http://www.w3school.com.cn"中的5代表5秒,url代表跳转地址。

适用场景:

  • 适合进入页面直接跳转,这种方式可以作为了解。

相关文章:

  • [saiku] olap数据源管理
  • uniapp开发:瀑布流 灵活配置 简单易用 兼容vue2vue3小程序、H5、app等多端
  • Chrome浏览器使用Overrides调试线上代码的技巧
  • js查找json数据中的最大值和最小值方法集结
  • CSS3 Border-color
  • uniapp+unicloud开发微信小程序流程
  • 微信小程序解决saveImageToPhotosAlbum:fail invalid file type
  • Cacti 不出图像的解决办法(完整版)
  • 我的CSDN博客、UNI技术成长之路
  • websoket封装版 参数配置化 开箱即用
  • h5页面js监听页面失去焦点、获取焦点
  • uniapp之vuex在vue2和vue3两种模式下前端工程化动态导入文件
  • css实现三角形的最简单方式原理剖析
  • android4.4.2内核移植3.4.1
  • js正则提取字符串中http等地址
  • JS 中的深拷贝与浅拷贝
  • css布局,左右固定中间自适应实现
  • js 实现textarea输入字数提示
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Redis 中的布隆过滤器
  • spring cloud gateway 源码解析(4)跨域问题处理
  • Swift 中的尾递归和蹦床
  • unity如何实现一个固定宽度的orthagraphic相机
  • Yeoman_Bower_Grunt
  • 爱情 北京女病人
  • 程序员该如何有效的找工作?
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 聊一聊前端的监控
  • 七牛云假注销小指南
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 软件开发学习的5大技巧,你知道吗?
  • 数组的操作
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 用jquery写贪吃蛇
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 从如何停掉 Promise 链说起
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #Java第九次作业--输入输出流和文件操作
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (2022 CVPR) Unbiased Teacher v2
  • (27)4.8 习题课
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (推荐)叮当——中文语音对话机器人
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)h264中avc和flv数据的解析
  • (转)大型网站架构演变和知识体系