javascript判断网页是关闭还是刷新

要判断网页是被关闭还是被刷新,需要使用onbeforeunload事件和event.currentTarget.performance.navigation.type属性。

onbeforeunload事件会在页面关闭或者刷新时被触发,可以作为判断依据。而event.currentTarget.performance.navigation.type属性在页面刷新时值为1,在页面关闭时值为2。

下面是具体的实现步骤:

  1. 在页面中添加onbeforeunload事件。
    <script>
        window.addEventListener('beforeunload',function(event){
            if(event.currentTarget.performance.navigation.type == 1) {
                // 页面是通过刷新退出的
            } else if(event.currentTarget.performance.navigation.type == 2) {
                // 页面是通过关闭退出的
            }
        });
    </script>
  1. 在事件中判断event.currentTarget.performance.navigation.type的值,从而得知页面是通过刷新退出还是通过关闭退出。

这里提供两个简单的示例:

示例一

<!DOCTYPE html>
<html>
<head>
    <title>Javascript判断网页是关闭还是刷新</title>
</head>
<body>
    <p>测试网页是否关闭或者刷新。</p>
    <button>刷新页面</button>
    <script>
        window.addEventListener('beforeunload',function(event){
            if(event.currentTarget.performance.navigation.type == 1) {
                alert('页面是通过刷新退出的');
            } else if(event.currentTarget.performance.navigation.type == 2) {
                alert('页面是通过关闭退出的');
            }
        });

        document.querySelector('button').addEventListener('click', function(event){
            location.reload();
        });
    </script>
</body>
</html>

示例二

<!DOCTYPE html>
<html>
<head>
    <title>Javascript判断网页是关闭还是刷新</title>
</head>
<body>
    <p>测试网页是否关闭或者刷新。</p>
    <form method="post">
        <input type="text" name="username" placeholder="用户名">
        <input type="password" name="password" placeholder="密码">
        <br>
        <button type="submit">登录</button>
    </form>
    <script>
        window.addEventListener('beforeunload',function(event){
            if(event.currentTarget.performance.navigation.type == 1) {
                alert('页面是通过刷新退出的');
            } else if(event.currentTarget.performance.navigation.type == 2) {
                alert('页面是通过关闭退出的');
            }
        });
    </script>
</body>
</html>

这两个示例分别展示了在按钮点击和表单提交时,如何判断网页是被关闭还是被刷新。需要注意的是,在表单提交时,如果需要在提交前确认是否退出,可以使用window.confirm方法来实现。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript判断网页是关闭还是刷新 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • Document:getElementsByName()使用方法及示例

    当你需要获取带有相同名称的元素时(例如 input 标签),你可以使用 Document 对象的 getElementsByName() 方法。 语法 document.getElementsByName(name) 参数 name:元素的名称,字符串类型。 返回值 返回一个包含指定名称的所有元素的 NodeList(节点列表)。 示例一:获取单选按钮的状态…

    JavaScript 2023年6月10日
    00
  • js调用AJAX时Get和post的乱码解决方法

    这里是 “js调用AJAX时Get和post的乱码解决方法”的完整攻略,我们将分为以下几个步骤: 确认乱码问题 解决Get请求的乱码问题 解决Post请求的乱码问题 接下来详细讲解: 1. 确认乱码问题 首先在实际开发时遇到乱码问题时,需要确认到底是AJAX请求出现了乱码,还是服务器返回了乱码,这是解决问题的第一步。 可以通过Chrome浏览器的开发者工具,…

    JavaScript 2023年5月19日
    00
  • 初步了解JavaScript,Ajax,jQuery,并比较三者关系

    初步了解 JavaScript、Ajax 和 jQuery JavaScript JavaScript 是一种轻量级的编程语言,用于在网页上创建交互式的效果。它是一种客户端脚本语言,意味着它是在用户的计算机上运行的。JavaScript 在网页上增加了很多功能,例如动态数据验证、弹出窗口、动画和页面轮廓等。 Ajax Ajax 是 Asynchronous …

    JavaScript 2023年6月11日
    00
  • cocos2dx骨骼动画Armature源码剖析(一)

    我来详细讲解一下“cocos2dx骨骼动画Armature源码剖析(一)”的完整攻略。 标题 一、背景介绍 在这一部分中,可以简要介绍一下本文所要讲解的主题和相关背景知识。比如,cocos2d-x 是一个跨平台的 2D 游戏引擎,支持多种编程语言,骨骼动画是该引擎的一个重要功能之一。 二、源码剖析 在这一部分中,可以详细剖析骨骼动画 Armature 的源码…

    JavaScript 2023年6月11日
    00
  • js的image onload事件使用遇到的问题

    下面是详细解释和示例: 关于 image onload 事件 Image 对象是 JavaScript 用于载入图像的对象。Image 对象的 onload 事件在图像载入完成时触发,可以用于检测图像是否成功加载,并在成功后执行其他操作。当然,如果图像加载失败,onload 事件是不会被触发的。 经典的 image onload 示例 以下是一个完整的 im…

    JavaScript 2023年5月19日
    00
  • RegExp 随笔 JavaScript RegExp 对象

    RegExp 随笔 JavaScript RegExp 对象 RegExp 对象在 JavaScript 中用于执行正则表达式的匹配。本文将为您介绍 RegExp 对象的使用、创建、使用方法和属性等内容。 RegExp 对象的创建 由于正则表达式是用特殊的语法来描述字符串模式的,因此我们需要先定义一个字符串作为正则表达式的模式描述,然后使用 RegExp 对…

    JavaScript 2023年5月28日
    00
  • backbone简介_动力节点Java学院整理

    Backbone.js 简介 – 动力节点Java学院整理 什么是 Backbone.js Backbone.js是一个用于构建单页应用程序(Single Page Application)的JavaScript框架。它将应用程序的数据模型(Model)、用户界面(View)以及用户与之交互的程序逻辑(Controller)分离开来,并为它们提供了统一的界面…

    JavaScript 2023年6月11日
    00
  • ES6 对象的新功能与解构赋值介绍

    ES6对象的新功能与解构赋值介绍 ES6是ECMAScript的第6个版本,新增了许多语言特性和语法糖。其中,对象的新功能和解构赋值是 ES6 最重要的特性之一。本文将分别介绍 ES6 对象的新功能和解构赋值的使用方法。 ES6对象的新功能 属性简写 在 ES6 之前,定义对象的属性时需要写成 key: value 的形式,如: var a = 1; var…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部