js 实现页面隐藏、关闭、刷新给出对应的提示

article/2025/11/7 9:38:38

我们在做项目的时候经常会遇到一些需求,比如在某些页面当点击浏览器刷新 或者关闭的时候会有对应的提示,是否离开或者重新加载此网站。比如csdn写文章的时候就有这个弹窗,这功能就是用onbeforeunload实现的。

注意:如果你加载下面代码的时候你进来的时候点击刷新可能会出现一次,但是点重新加载后,如果下次再进来,你再点击刷新按钮就不会出现该弹窗,原因是因为你页面内容没有发生变化,这个点击重新加载后再点击刷新出现弹窗的条件是你页面内容一样要发生了变化,比如表单重新输入,页面某个元素变化了或者删除了。

代码如下:

window.onbeforeunload = function (e) {e = e | window.event;if (e) {e.returnValue = '关闭提示';}return false;};

 浏览器切换其他页面或者最小化的时候触发,(ps: 常用于检测考试作弊行为)

一般来说,我们希望使用 Page Visibility API,在用户没有看到页面时停止不必要的进程,或者执行一些后台操作。可以下面这几种情况:

  • 当用户离开页面时,暂停视频、轮播图或动画。

  • 停止一些实时获取数据的API

  • 发送一些用户信息

  • 如何使用它?

    Page Visibility API 有两个属性和一个事件来访问页面可见性状态。

    document.hidden它是全局可用的,而且是只读的。尽量避免使用它,因为它现在已经被废弃了,但是当被访问时,如果页面是隐藏的,它将返回 true,如果是可见的,它将返回 false

    Document.visibilityState (只读属性)

    返回document的可见性,即当前可见元素的上下文环境。由此可以知道当前文档 (即为页面) 是在背后,或是不可见的隐藏的标签页,或者 (正在) 预渲染。可用的值如下:

  • 'visible' : 此时页面内容至少是部分可见。即此页面在前景标签页中,并且窗口没有最小化。

  • 'hidden' : 此时页面对用户不可见。即文档处于背景标签页或者窗口处于最小化状态,或者操作系统正处于 '锁屏状态'

  • 'prerender' : 页面此时正在渲染中,因此是不可见的 (considered hidden for purposes of document.hidden). 文档只能从此状态开始,永远不能从其他值变为此状态。

  • visibilitychange

    当其选项卡的内容变得可见或被隐藏时,会在文档上触发 visibilitychange (能见度更改) 事件。

  • document.addEventListener("visibilitychange", () => {if (document.visibilityState === "visible") {// page is visible} else {// page is hidden}
    });
    


http://chatgpt.dhexx.cn/article/nqGHlRQy.shtml

相关文章

js面试题大坑——隐式类型转换

1.1 隐式转换介绍 1.2 隐式转换规则 1.3 坑一:字符串连接符与算术运算符隐式转换规则混淆 1.4 坑二:关系运算符:会把其他数据类型转换成number之后再比较关系 1.5 坑三:复杂数据类型在隐式转换时会先转成String&#xff0…

u一点·料:阿里巴巴1688ued体验设计践行之路

U一点料 阿里巴巴1688UED体验设计践行之路 阿里巴巴1688用户体验部著 图书在版编目(CIP)数据 U一点料:阿里巴巴1688UED体验设计践行之路/阿里巴巴1688用户体验部著. —北京:机械工业出版社,2015.8 ISBN 978-7-111-5122…

一段百年征程的有限单群

1832年的某个清晨,革命中的法国见证了重新决斗。 在某个瞬间,某位青年被对手的枪射中腹部。随后去世。在当时狂热的政治斗争中,仅仅有寥寥数人意识到。法国,甚至世界。又失去了还有一个伟大的头脑。 这位青年姓伽罗华,…

权威发布:新一代人工智能发展白皮书(2017)

来源:机器人大讲堂 指导单位、专家顾问及编写人员 顾 问 潘云鹤 中国工程院院士 指导单位 工业和信息化部信息化和软件服务业司 指导委员会 谢少锋 工信部信软司司长 李冠宇 工信部信软司副司长 徐晓兰 中国电子学会副理事长兼秘书长 张宏图 中国电…

《构建之法,邹欣》阅读笔记

前言: 从2018年10月30日开始,阅读由微软工程师邹欣老师撰写的《构建之法》一书,全书共435页,每天阅读15页,在一个月(30天)完成。每天阅读完成后,需要思考当日的阅读要点和一些思考。…

C语言练习——提高篇

新开通了本人的公众号,欢迎关注:燕南路GISer ,专注GIS干货分享,不定期更新。 主要兴趣:GIS、时空数据挖掘、python、机器学习深度学习 CSDN的部分内容会重写再搬迁到公众号,欢迎关注! 目录 汉诺…

一文说透低代码平台/无代码平台

一、低代码/无代码平台是什么 二、低代码/无代码平台是怎么产生的 三、低代码/无代码平台应具备哪些能力 四、主流的低代码/无代码平台有哪些 五、低代码/无代码平台典型应用场景 六、低代码/无代码平台有什么价值 七、低代码/无代码平台有什么优势 八、低代码/无代码平…

代码知识点

JS&基础知识篇: 1、事件流 分为捕获型、冒泡型,addEventListener的第三个参数,为true是捕获型,为false是冒泡型(即默认不写是冒泡型) 常用的事件:click、mouseover(支持冒泡…

「可视化搭建系统」——从设计到架构,探索前端领域技术和业务价值

阿里巴巴集团前端委员会主席 圆心:未来前端的机会在哪里 对前端未来期许有四点:搭建服务, Serverless,智能化,IDE。仔细想想,一个「可视化搭建系统」的想象空间,正能完美命中这些方面。前端的边…

集合类详解

1.List 1.1 ArrayList ArrayList概述 实现List接口的动态数组(大小可变)。默认初始容量10,随着元素增加容量也在不断变化每次添加之前检查是否需要扩容带来数据向新数组的拷贝,若知道数据量可以指定一个初始容量。ArrayList实现…

魔方还原算法(二) 科先巴的二阶段算法

科先巴的二阶段算法 本文来具体介绍一种具体的魔方还原算法——科先巴的二阶段算法,有一部分相关内容在前篇讲述,主要是方向定义那一块儿,没有看的建议先看一下: 二阶段,顾名思义,解决问题分为两步&#…

BUUCTF cmcc_simplerop

cmcc_simplerop 由于网络安全课程需要,从本篇开始记录BUU的做题记录及wp 常规操作,拿到文件先检查,保护开得不多 ida查看,存在明显溢出,并且提示要使用ROP 利用pwndbg得到偏移量为0x20 找到了系统调用int 0x80 整…

BUUCTF | [GXYCTF2019]BabySQli

BUUCTF | [GXYCTF2019]BabySQli 一、必备基础知识 当号被过滤了使用like,rlike绕过 当or被过滤了使用大小写绕过,双写绕过,&&绕过 二、实战化渗透 [GXYCTF2019]BabySQli 因为本道题目的请求方式是POST,直接上手抓包&a…

Cefsharp 与js交互

C# 部分代码 var setting new CefSettings(); setting.CefCommandLineArgs.Add("disable-gpu", "1"); if(!Directory.Exists(Application.StartupPath "\\BrowserCache")) { Directory.…

CefSharp 知道这些就完事了

文章目录 0. 简介1. 安装2. H.264支持3. 加载本地HTML文件4. 多个窗口显示浏览器5. 执行JavaScript代码6. 在JS中调用C#方法 0. 简介 CefSharp,简单来说就是一款.Net编写的浏览器包,方便你在Winform和WPF中内嵌的Chrome浏览器组件。它支持HTML5。 CefSh…

TinyLFU: A Highly Efficient Cache Admission Policy

缓存是计算机科学中可以提高系统性能的最基本、最有效的一种方法之一。当完整的数据不适合全部缓存时,通过将一小部分数据存放到更快、更接近应用程序的内存中来提高性能。缓存可以提高性能的最直观原因在于数据的访问都表现出相当程度的“局部性”。更正式的表征这…

首次接触CefSharp

无疑是我最拿手的开发工作。可是作为一个想成为全能骑士的程序员,当然要能满足各种开发需求。 但是界面这种东西不让我用前端来做心里会很憋屈的。所以在各种需求面前我都会找是否能与HTML混合开发。 我使用过的混合开发平台 C# WebView 追溯到最早我的混合开发还是…

BUUCTF Misc 穿越时空的思念 [ACTF新生赛2020]outguess [HBNIS2018]excel破解 [HBNIS2018]来题中等的吧

目录 穿越时空的思念 [ACTF新生赛2020]outguess [HBNIS2018]excel破解 [HBNIS2018]来题中等的吧 穿越时空的思念 下载文件 使用Audacity打开 点击图示位置,选择分离立体声到单声道,得到一串摩斯(右声道),记录下来复…

【buuctf】cscctf_2019_qual_babyheap

buuctf【cscctf_2019_qual_babyheap】 今天找了一道100分题目,题目本身并没有那么难 例行检查 64位的程序,保护机制全开,放到IDA中分析 漏洞分析 函数功能很简单,功能基本齐全,漏洞点在creat()中, 当我…

CE-FPN: Enhancing Channel Information for Object Detection

论文链接: https://arxiv.org/pdf/2103.10643v1.pdf 本文提出了一种新的通道增强特征金字塔网络(CE-FPN),具体地说,受亚像素卷积的启发,提出了一种亚像素跳跃融合方法来执行通道增强和上采样。它代替了原来的11卷积和…