h5监听页面展示隐藏返回

2023-11-05

在开发中遇到了需要监听页面隐藏展示(比如切到后台又切回来),这个时候我立马想到onShow生命周期,不过反应过来这个是微信小程序的。如果想在h5里面监听的话,只需要加一个监听器

document.addEventListener('visibilitychange', async () => {
  if (document.visibilityState == 'visible') {
    //页面展示 
  } eles {
    //页面隐藏
  }
})

解决了这个问题,又来了一个新的问题,比如我开发的A页面,从A页面跳转到B页面,再从B页面返回到A页面,这个使用上面所说的visibilitychange是监听不到的,因为本质上讲A页面并没有被隐藏,这里不展开细说,只说怎么解决,那就是用另一个事件监听 popstate

window.addEventListener('popstate', async () => {
  //监听到页面返回
})

好的,又把这个问题解决了,但是出现了一个新的问题,那就是如果我使用了vue-router,在单页面应用里进行路由跳转,因为链接的变化,路由跳转也会被认为是页面之间的切换,因此也会触发popstate这个监听。
但这显然不是我想要的效果,因此我只好又拿出了另外一个事件监听: pageshow
eg: 这里使用popstate也可以完成需求,用全局参数记录一下是否路由跳转就行

window.addEventListener('pageshow', async () => {
 //监听到页面展示
 if (StoreModule.loadEnd) {//loadEnd为true即为页面加载完成
    //to do something
  }
})

pageshow,字面上就能看出是页面展示的意思,因此页面的最开始加载和从其他页面返回才会触发,而hash路由跳转的时候并不会触发,再用一个vuex保存一个页面是否加载完成的参数来判断,就能完美处理页面返回的监听处理逻辑了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

h5监听页面展示隐藏返回 的相关文章

  • Javascript Promise“then”始终运行,即使 Promise 未能执行

    我希望当调用第二个 then 时不执行第三个 then 但是 即使 Promise 被拒绝 调用第二个 then 并且代码返回 rejected 然后返回 undefined 它仍然调用第三个 then 如何不运行第三个 then 这样 未
  • 以编程方式填写reactjs表单

    我正在编写一个用户脚本 但无法填写由reactjs制作的表单 我的代码 document querySelector id username value email protected cdn cgi l email protection
  • 如何修改每个JSON对象javascript

    我想修改里面的每个 JSON 值cooldown object cooldown user 1 This user2 0 This 在 Javascript 中使用 for 语句 我研究了好几个小时 只找到了内部的 blocks Edit
  • 使用 JavaScript 禁用第三方 cookie

    我正在努力根据所有在欧盟运营的公司的数据保护规则实施新的 Cookie 政策合规性 根据该规则 用户在使用任何网站时必须能够拒绝 接受除必需的 Cookie 之外的所有内容 在我客户的网站中 我可以看到正在存储以下第三方 cookie ga
  • 如何将内联 JavaScript 与 Express/Node.js 中动态生成的内容分开?

    对于具有几年 Web 开发经验但没有找到答案的人来说 这是一个有点菜鸟的问题程序员堆栈交换 or Google 我决定在这里问一下 我在用Express网络框架Node js 但这个问题并不特定于任何 Web 框架或编程语言 以下是从数据库
  • 有没有办法使用 Rspec/Capybara/Selenium 将 javascript console.errors 打印到终端?

    当我运行 rspec 时 是否可以让 capybara selenium 向 rspec 报告任何 javascript console errors 和其他异常 我有一大堆测试失败 但当我手动测试它时 我的应用程序正在运行 如果不知道仅在
  • 将 GMT 时间转换为当地时间

    我以这种格式从我的服务器获取 GMT 时间 Fri 18 Oct 2013 11 38 23 GMT 我的要求是使用Javascript将此时间转换为本地时间 例如 如果用户来自印度 首先我需要采用时区 5 30并将其添加到我的服务器时间并
  • 调整图像大小并将画布旋转 90 度

    这里有很多关于在 js 上使用画布旋转图像的主题 我阅读了其中的大部分内容 但无法找到解决我的问题的方法 我正在接收任何分辨率的图像 来自上传组件 我将其大小调整为 1024x768 如下所示 var canvas document cre
  • 使用 CSS 或 Javascript 填充动画

    我只是想知道是否可以使用 CSS 或 javascript 创建填充动画 基本上我想创建一个填充动画 如下图所示 http i40 tinypic com eit6ia png http i40 tinypic com eit6ia png
  • 如何解决 Typescript 构建中的错误“找不到模块 'jquery'”

    我目前在 ts 文件的顶部有这个import require jquery 我这样做是因为我试图在我的打字稿文件中使用 jquery 但我似乎无法编译它 因为它返回标题中所述的错误 我正在使用 ASP NET CORE 脚本文件夹 tsco
  • 在 HTML5 画布中,如何用我选择的背景遮盖图像?

    我试图用画布来实现这一点 globalCompositeOperation 但没有运气 所以我在这里问 这里有类似的问题 但我没有在其中找到我的案例 我的画布区域中有图层 从下到上的绘制顺序 画布底座填充纯白色 fff 用fillRect
  • 刷新页面时保存用户的选择

    我目前有一个页面显示不同团队的数据 我有一些数据 用户可以单击使其处于 打开 或 关闭 状态 并为每个数据显示不同的图标 它基本上就像一个清单 只是没有物理复选框 我想记住哪些 复选框 已被选中 即使在用户刷新页面或关闭浏览器并稍后返回之后
  • Vuejs 2:去抖动不适用于手表选项

    当我在 VueJs 中反跳此函数时 如果我提供毫秒数作为原语 它就可以正常工作 但是 如果我将其提供为对 prop 的引用 它会忽略它 这是道具的缩写版本 props debounce type Number default 500 这是不
  • 可以设置标题样式吗? (并且使用CSS或js?)[重复]

    这个问题在这里已经有答案了 我想知道是否可以设计一个title a href title This is a title Hello a 样式问题有两个方面 文本格式 编码 我猜这是可能的 所以在问题中这样做 工具提示样式 你能把它弄大一点
  • 从数据库检查数据的异步解决方案各种循环子句

    我想要做的是异步检查数据库并从中获取结果 在我的应用程序中我试图实现Asynchronously将此步骤解决为 从数据库中检查手机号码JsonArray循环子句的种类 Create JsonArray从结果 打印创建的数组 我学到了足够多的
  • 如何用另一个响应替换窗口的 URL 哈希?

    我正在尝试使用替换方法更改哈希 URL document location hash 但它不起作用 function var anchor document location hash this returns me a string va
  • 从 FileReader 设置背景图像样式

    我正在寻找一种解决方案 允许我从文件上传输入中获取文件并通过设置 document body style backgroundImage 来预览它 以下代码用于在 Image 元素中显示预览 function setImage id tar
  • JavaScript 相对路径

    在第一个 html 文件中 我使用了一个变量类别链接 var categoryLinks Career prospects http localhost Landa DirectManagers 511 HelenaChechik Dim0
  • 如何使用 Angular CLI 在特定文件夹中生成组件?

    我将 Angular 4 与 Angular CLI 结合使用 并且可以使用以下命令创建一个新组件 E HiddenWords gt ng generate component plainsight 但我需要在 plainsight 中生成
  • 分页在服务器端好还是前端好? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在构建 Laravel Vue 应用程序 我想知道在后端使用分页还是在前端使用分页更好 我认为最好在每页发送尽可能少的数据的请求 但我想听听

随机推荐

  • [Python人工智能] 十八.Keras搭建卷积神经网络及CNN原理详解

    从本专栏开始 作者正式研究Python深度学习 神经网络及人工智能相关知识 前一篇文章详细讲解了Keras实现分类学习 以MNIST数字图片为例进行讲解 本篇文章详细讲解了卷积神经网络CNN原理 并通过Keras编写CNN实现了MNIST分
  • 硬件系统工程师宝典(2)-----硬件电路的概要设计启动

    今天我们继续来读这本书 硬件系统工程师宝典 作者提到 产品需求分析之后就进入概要设计阶段 在这个阶段 ID Industrial Design 工业设计及结构工程师 软件系统开发工程师和硬件系统开发工程师等开始分头工作 工业设计工程师负责使
  • 【会议分享】2022年工业电子与仪器仪表国际会议(ICoIEI 2022)

    2022年工业电子与仪器仪表国际会议 ICoIEI 2022 重要信息 会议网址 www icoiei org 会议时间 2022年10月15 17日 召开地点 韩国济州岛 截稿时间 2022年9月15日 录用通知 投稿后2周内 收录检索
  • python王者归来 pdf下载_OpenStack开源云王者归来

    基本上关于openstack的都买过了 这本最后 前面一些概念内容还是很有帮助的 很好的一本书 非常适合初学者 赞一个 不过原理的东西特少 全都是代码 真是看得蛋疼 OpenStack开源云王者归来介绍 本书按照入门 剖析 扩展的讲授方式
  • 【Python】查看Python & PyTorch & Torchvision版本

    1 查看Python版本 方法一 终端中输入 python V 方法二 进入Python环境 python 输入 import sys print sys version print sys version info 2 查看PyTorch
  • 服务器开启虚拟机就死机,解决ESXi服务器上磁盘锁导致虚拟机卡死的问题

    解决ESXi服务器上磁盘锁导致虚拟机卡死的问题 解决ESXi ESX服务器上磁盘锁导致虚拟机假死 卡死的问题 当虚拟机被卡死或假死时 在文件夹里面只有如下内容信息 1 vswp 2 flat vmdk 3 delta vmdk 4 vmx
  • 人工智能、机器学习、自然语言处理、深度学习等有啥本质的区别?

    大众媒体赋予这些术语的含义通常与机器学习科学家和工程师的理解有所出入 因此 当我们使用这些术语时 给出准确的定义很重要 其关系韦恩图如图1 2所示 图1 2 自然语言处理 人工智能 机器学习和深度学习等术语的关系韦恩图 1 人工智能 人工智
  • LeetCode题目笔记——1807. 替换字符串中的括号内容

    文章目录 题目描述 题目难度 中等 方法一 使用字典 代码 Python 代码 C 总结 题目描述 给你一个字符串 s 它包含一些括号对 每个括号中包含一个 非空 的键 比方说 字符串 name is age yearsold 中 有 两个
  • u盘显示需要格式化才能用怎么办?小技能了解下!

    u盘显示需要格式化才能用怎么办 u盘是常用的一款数据存储设备 但不少网友在使用u盘的过程中 都遇到过这样的一个问题 就是u盘无法打开且提示需要将其格式化 有网友使用u盘的时候操作不当 直接拔插u盘导致u盘损坏需要格式化才能继续使用 但是里面
  • winform 登录跳转页面

    登录成功后跳转 改两个地方就可以解决而 第一个 上面的判断是登录成功与否 跳转需要的就是一句 当前页 改变DialogResult this DialogResult DialogResult OK 第二个 在Program cs里面 st
  • 矩形覆盖(java)

    一 问题描述 我们可以用2 1的小矩形横着或者竖着去覆盖更大的矩形 请问用n个2 1的小矩形无重叠地覆盖一个2 n的大矩形 总共有多少种方法 二 算法分析 解题思路 归纳法 列举出n 1 2 3 4 5 总结规律 分析可知 f n 可以按照
  • java.lang.ClassNotFoundException:(新建的servlet无法找到class文件)

    1 首先确定project gt Build Automatically是否勾选上 2 然后 再进行测试 能不能进行编译 如果还是不能 则进行手动编译 3 进入clean对话框 选择Clean projects selected below
  • 一个按键控制8个led灯_51单片机实现4个按键控制8个LED灯四种状态

    电路原理图 元件清单 程序 C语言 include
  • 爬虫一:用正则表达式爬取图片

    爬虫流程 发起请求 通过使用HTTP库向目标站点发起请求 即发送一个Request 请求可以包含额外的headers等信息 并等待服务器响应 获取响应内容如果服务器能正常响应 则会得到一个Response Response的内容就是所要获取
  • 如何模拟自动鼠标点击或记录鼠标和回放

    在日常办公和娱乐中 我们可能经常想让鼠标自动化的多一点 能自动点击或者循环做一些简单的重复性的程序事务 有没有办法来解决这个小问题呢 你可以使用极速自动鼠标点击器 它是一款鼠标自动点击软件工具 可以极快速的模拟自动鼠标点击或记录鼠标动作 并
  • [深入研究4G/5G/6G专题-27]: 5G NR开机流程4.5 - RRC连接应答消息MSG4、PUCCH上行控制信道首次调度、UCI与HARQ应答

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 目录 前言 第1章 随机接入知识准备 1 1 逻辑信道 传输信道 物理信道的映射关系
  • Office CVE-2017-11882本地复现

    Office CVE 2017 11882本地复现 这两天 office又出名了 CVE 2017 11882成了圈里关注的热点 今年office爆出好几个漏洞 从CVE 2017 0199 CVE 2017 8570到现在的CVE 201
  • Linux服务器Shell批量巡检

    关键词 Linux shell 批量巡检 1 批量巡检流程 通过Linux shell脚本实现批量服务器巡检方案 通常脚本由三部分组成 包括 巡检脚本 实现对性能信息或指标的采集与回传 巡检脚本下发脚本 由主服务器通过Except工具分别根
  • 支持向量机基础

    支持向量机 也叫支持向量网络 可以继续有监督 半监督 无监督学习 有监督学习 线性二分类与回归 非线性二分类与回归 普通连续型变量的回归 概率型连续变量的回归 无监督学习 支持向量机的聚类 SVC 异常值检测 半监督学习 转导支持向量机 支
  • h5监听页面展示隐藏返回

    在开发中遇到了需要监听页面隐藏展示 比如切到后台又切回来 这个时候我立马想到onShow生命周期 不过反应过来这个是微信小程序的 如果想在h5里面监听的话 只需要加一个监听器 document addEventListener visibi