js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)

yizhihongxing

实现用户离开页面前提示是否离开此页面的方法通常使用beforeunload事件。该事件会在用户关闭或离开页面前触发。在这个事件中,你可以弹出一个提示框,询问用户是否确认离开页面。下面是具体的实现步骤:

1. 监听beforeunload事件

首先,在 JavaScript 代码中添加如下代码来监听beforeunload事件:

window.addEventListener('beforeunload', function(event) {
  event.preventDefault();
  event.returnValue = '';
});

这里我们使用addEventListener方法来注册一个beforeunload事件监听器。event.preventDefault()方法会阻止默认的离开行为发生,而event.returnValue则会弹出提示对话框。

2. 确认用户操作

当用户点击页面关闭按钮或者跳转到其他页面时,beforeunload事件就会被触发。此时我们需要弹出一个提示框,确认用户是否确定离开当前页面:

window.addEventListener('beforeunload', function(event) {
  const confirmationMessage = '确定离开当前页面吗?';
  event.preventDefault();
  event.returnValue = confirmationMessage;
  return confirmationMessage;
});

其中,confirmationMessage是提示信息,可以根据实际需求自定义。当用户点击“确定”按钮时,浏览器会执行默认的离开行为;当用户点击“取消”按钮时,浏览器便会留在当前页面。

示例一

// 使用纯文本提示信息
window.addEventListener('beforeunload', function(event) {
  const confirmationMessage = '确定离开当前页面吗?';
  event.preventDefault();
  event.returnValue = confirmationMessage;
  return confirmationMessage;
});

示例二

// 使用自定义的提示框
window.addEventListener('beforeunload', function(event) {
  const confirmationMessage = '确定离开当前页面吗?';
  event.preventDefault();
  event.returnValue = confirmationMessage;
  setTimeout(function() {
    if (confirm(confirmationMessage)) {
      event.returnValue = null;
    }
  }, 0);
});

这个示例使用了一个自定义的提示框,当用户点击“确定”按钮时,才会执行默认的离开行为。注意,这里使用了setTimeout函数将确认框的代码从当前堆栈推迟到下一个事件循环中执行,以确保提示框能够正确显示。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件) - Python技术站

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

相关文章

  • 浅谈Javascript嵌套函数及闭包

    浅谈Javascript嵌套函数及闭包 Javascript中的嵌套函数和闭包是一些高级概念,但对于深入理解Javascript这门语言来说是必不可少的。在这篇文章中,我们将探讨Javascript中嵌套函数和闭包的概念、特点以及如何使用它们。 嵌套函数 嵌套函数,就是在一个函数体中定义另一个函数。在Javascript中,函数是一等公民,也就是说函数可以作…

    JavaScript 2023年6月10日
    00
  • Javascript Dom元素获取和添加详解

    关于JavaScript中Dom元素获取和添加,可以分为如下几个方面进行讲解: 一、Dom元素获取 Dom元素是页面上的元素,我们可以通过JavaScript代码获取到Dom元素以便进行操作,下面介绍一些常用的Dom元素获取方式: 1. document.getElementById 这是获取单个元素最常用的方法,通过元素id获取单个Dom元素: var e…

    JavaScript 2023年6月10日
    00
  • Vue3 将组件手动渲染到指定元素中的方法实现

    Vue3 允许将组件手动渲染到指定元素中,主要通过 createApp() 函数及 mount() 函数来实现。下面是实现该功能的具体步骤: 步骤一:创建组件 首先,需要创建一个组件,例如: <template> <div class="example-component"> <p>Hello, {{ …

    JavaScript 2023年6月10日
    00
  • javascript getElementsByClassName 和js取地址栏参数

    下面分别详细讲解一下”javascript getElementsByClassName”和”js取地址栏参数”。 Javascript getElementsByClassName getElementsByClassName() 是 javascript DOM API 的一部分,该 API 允许开发者通过 class name 查找文档中的 DOM 元…

    JavaScript 2023年6月11日
    00
  • 详解javaScript中Number数字类型的使用

    详解JavaScript中Number数字类型的使用 在JavaScript中,Number数字类型表示数字。在本文中,我们将详细讨论JavaScript中的Number数字类型,包括Number的类型、创建Number变量的方法、数字类型的方法和常见问题以及示例说明。 Number类型和创建Number变量的方法 在JavaScript中,Number是一…

    JavaScript 2023年5月28日
    00
  • 基于原生JavaScript实现SPA单页应用

    基于原生JavaScript实现SPA单页应用攻略 简介 单页应用(Single Page Application,SPA)是一种基于Web浏览器的应用程序,整个应用程序只有一个HTML文件,页面切换时通过ajax与后端进行数据交互,然后动态更新Dom元素,从而实现页面的切换。 原生JavaScript是指不依赖第三方框架或库,只使用纯JavaScript进…

    JavaScript 2023年6月11日
    00
  • JS前端同源策略和跨域及防抖节流详解

    JS前端同源策略和跨域及防抖节流是JS前端开发中常见的一些概念和技术。下面将详细讲解这些内容。 JavaScript前端同源策略 同源策略是一种安全策略,用于限制一个源加载的文档或脚本与来自另一个源所加载文档或脚本交互的方式。这里的“源”是由协议,主机名和端口号标示的。同源策略的存在是为了保护用户隐私和安全。 具体来说,同源策略要求:如果两个页面的域名,协议…

    JavaScript 2023年6月11日
    00
  • sso跨域写cookie的一段js脚本(推荐)

    来详细讲解一下“sso跨域写cookie的一段js脚本(推荐)”的完整攻略。 什么是SSO? SSO(Single Sign-On,单点登录),指在多个应用系统中,用户只需登录一次就可以访问所有相互信任的应用系统。 什么是跨域? 跨域是指浏览器禁止通过客户端脚本语言发起对不同源(协议、域名、端口号)的请求。 为什么要跨域写Cookie? 由于浏览器的同源策略…

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