【前端面试题】如何判断用户是否离开当前页面?

简介: 在今年秋招的笔试题中,有部分小伙伴遇到了这样一个题:写一段代码用于判断用户是否离开当前页面

在今年秋招的笔试题中,有部分小伙伴遇到了这样一个题:写一段代码用于判断用户是否离开当前页面


不出所料,这个问题难倒了一大批的面试者


其实这考查的是html5中一个新的事件——visibilitychange,当用户进入页面或者离开页面时,都会触发该事件


与此同时,在document对象上也新增了一个属性 visibilityState,它有两个值:分别为 visiblehidden ,顾名思义,当用户在使用当前页面时,该属性的值为 visible ;当用户离开页面时,该属性的值为 hidden


我们结合上面个知识点,就可以写一段代码,用来判断用户是否离开当前页面了


    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>判断用户是否离开页面</title></head><body>    <script>        /*  实现该功能:当用户离开页面时, 打印 '离开页面' ; 当用户回到页面时, 打印 '回到页面'   */        document.addEventListener('visibilitychange', function() {            if(document.visibilityState == 'hidden') {                console.log('离开页面');            } else {                console.log('回到页面');            }        })</script></body></html>


    我们来看一下实际的效果吧


    253a47213afdd0078b29a1117d26469a.jpg


    扩展一下应用的话,我们可以在事件处理函数中写入一段Ajax代码,用于在用户离开页面时向服务端发送一条信息,就可以实现监控用户在网页中考试答题作弊情况了

    相关文章
    |
    1月前
    |
    前端开发 数据安全/隐私保护
    .自定义认证前端页面
    .自定义认证前端页面
    10 1
    .自定义认证前端页面
    |
    20天前
    |
    JavaScript 前端开发 程序员
    前端原生Js批量修改页面元素属性的2个方法
    原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
    |
    27天前
    |
    前端开发 安全 JavaScript
    在阿里云快速启动Appsmith搭建前端页面
    本文介绍了Appsmith的基本信息,并通过阿里云计算巢完成了Appsmith的快速部署,使用者不需要自己下载代码,不需要自己安装复杂的依赖,不需要了解底层技术,只需要在控制台图形界面点击几下鼠标就可以快速部署并启动Appsmith,非技术同学也能轻松搞定。
    |
    1月前
    |
    存储 缓存 网络协议
    计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
    计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
    |
    2月前
    |
    前端开发 JavaScript
    回顾前端页面发送ajax请求方式
    回顾前端页面发送ajax请求方式
    38 18
    |
    1月前
    |
    缓存 前端开发 JavaScript
    "面试通关秘籍:深度解析浏览器面试必考问题,从重绘回流到事件委托,让你一举拿下前端 Offer!"
    【10月更文挑战第23天】在前端开发面试中,浏览器相关知识是必考内容。本文总结了四个常见问题:浏览器渲染机制、重绘与回流、性能优化及事件委托。通过具体示例和对比分析,帮助求职者更好地理解和准备面试。掌握这些知识点,有助于提升面试表现和实际工作能力。
    65 1
    |
    3月前
    |
    Web App开发 前端开发 Linux
    「offer来了」浅谈前端面试中开发环境常考知识点
    该文章归纳了前端开发环境中常见的面试知识点,特别是围绕Git的使用进行了详细介绍,包括Git的基本概念、常用命令以及在团队协作中的最佳实践,同时还涉及了Chrome调试工具和Linux命令行的基础操作。
    「offer来了」浅谈前端面试中开发环境常考知识点
    |
    3月前
    |
    前端开发 JavaScript API
    前端JS读取文件内容并展示到页面上
    前端JavaScript使用FileReader API读取文件内容,支持文本类型文件。在文件读取成功后,可以通过onload事件处理函数获取文件内容,然后展示到页面上。
    107 2
    前端JS读取文件内容并展示到页面上
    |
    2月前
    |
    前端开发 数据安全/隐私保护
    angular前端基本页面验证
    angular前端基本页面验证
    31 1
    |
    2月前
    |
    前端开发
    搭建个人博客--1、前端页面
    搭建个人博客--1、前端页面
    22 1