onbeforeunload事件_pageload事件何时触发

onbeforeunload事件_pageload事件何时触发beforeunload事件简介当窗口,文档及其资源即将卸载时,将触发该事件。该文档仍然可见,此时事件仍可取消。如果为returnValueEvent属性分配了一个字符串,则会出现一个对话框,要求用户确认离开该页面(参见下面的示例)。IE浏览器在对话框中显示返回的字符串,但其他浏览器会显示自己的消息。如果未提供任何值,则以静默方式处理事件。注意:为了防止不需要…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

beforeunload事件

简介

当窗口,文档及其资源即将卸载时,将触发该事件。该文档仍然可见,此时事件仍可取消。

如果为returnValueEvent属性分配了一个字符串,则会出现一个对话框,要求用户确认离开该页面(参见下面的示例)。IE浏览器在对话框中显示返回的字符串,但其他浏览器会显示自己的消息。如果未提供任何值,则以静默方式处理事件。

注意:为了防止不需要的弹出窗口,浏览器可能不会显示在beforeunload事件处理程序中创建的提示,除非页面已与之交互,甚至根本不显示它们。

PS:如果进入当前页面后没有用户没有与页面进行任何交互(比如鼠标在页面上点击),直接关掉或者刷新当前页面是没有弹窗提示。一定要与页面进行交互之后,才能在页面卸载的时候弹出确认离开的对话框;没有进行页面交互,也是会触发beforeunload事件的,只是不会弹出确认离开的对话框

语法

//通用
window.onbeforeunload = function (event) {};
//IE9+
window.addEventListener("beforeunload", function (event) {});

Jetbrains全家桶1年46,售后保障稳定

beforeunload事件对象属性

属性 类型 描述
target 只读 EventTarget 事件目标(DOM树中最顶层的目标)。
type 只读 DOMString 事件的类型。
bubbles 只读 Boolean 事件通常会冒泡吗?
cancelable 只读 Boolean 可以取消活动吗?
returnValue[1] DOMString 事件的当前返回值(显示用户的消息)。

[1]为了防止网站欺骗用户,谷歌浏览器和火狐浏览器已经废弃设置returnValue,谷歌浏览器和火狐浏览器弹窗只显示各自系统通用字符串,忽略自定义字符串,IE依然可以显示自定义字符串,Edge(IE12+)依然可以显示自定义字符串。

PS:不用再怀疑为什么设置了returnValue没有效果了。

Google声明:

https://developers.google.com/web/updates/2016/04/chrome-51-deprecations?hl=en#remove_custom_messages_in_onbeforeunload_dialogs

示例

window.onbeforeunload = function (event) {
  event = event || window.event;
  event.returnValue = "xxxxxxx";
};

window.addEventListener("beforeunload", function (event) {
  event = event || window.event;
  event.returnValue = "xxxxxxx";
});

window.addEventListener("beforeunload", function (event) {
  event = event || window.event;
  event.preventDefault();
});

事件触发场景

  1. 关闭浏览器窗口
  2. 通过地址栏或收藏夹前往其他页面的时候
  3. 点击返回,前进,刷新,主页其中一个的时候
  4. 点击 一个前往其他页面的url连接的时候
  5. 使用document.write() 方法(输出内容)
  6. 使用document.open() 打开一个新的空白文档
  7. 使用document.close() 方法可关闭一个由open()方法打开的输出流,并显示选定的数据。
  8. 当使用window.open() 打开一个页面,并把本页的window的名字传给要打开的页面的时候。
  9. 使用window.close() 关闭页面的时候
  10. 重新赋予window.location.href的值的时候。
  11. 通过input type=”submit”按钮提交一个具有指定action的表单的时候。
  12. 使用form.submit() 提交表单的时候

应用场景

onbeforeunload对话框用于现代Web上的两件事:

  1. 防止用户无意中丢失数据。
  2. 欺骗用户。

参考:

https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201131.html原文链接:https://javaforall.net

(0)
上一篇 2025年8月16日 上午8:22
下一篇 2025年8月16日 上午9:01


相关推荐

  • URL转发基础!_URL怎么用

    URL转发基础!_URL怎么用 1、什么是URL转发?所谓URL转发是当你访问一个域名时,将会自动跳转到您所指定的另一个网络地址(URL)。假设abc.com是您要访问的域名,则通过URL转发服务可以实现当访问http://www.abc.com时,自动转向访问另外一个URL,如:http://www.otherdomain.com/somedir/other.htm。URL转发服务尤其对于拥有一个主网站并同时拥有多个域

    2022年10月10日
    4
  • 常见JVM面试题及答案整理[通俗易懂]

    常见JVM面试题及答案整理[通俗易懂]前言总结了JVM一些经典面试题,分享出我自己的解题思路,希望对大家有帮助,有哪里你觉得不正确的话,欢迎指出,后续有空会更新。1.什么情况下会发生栈内存溢出。思路:描述栈定义,再描述为什么会溢出,再说明一下相关配置参数,OK的话可以给面试官手写是一个栈溢出的demo。我的答案:栈是线程私有的,他的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储局部变量表,操作…

    2022年6月9日
    31
  • elk怎么搭建_搭建网站的过程

    elk怎么搭建_搭建网站的过程1.服务器使用阿里云服务器(方便),抢占式实例(便宜),4核16G,系统选择centos7.4/64位(好用)。购买地址:https://ecs-buy.aliyun.com/我们只是测试学习使用,把端口权限全开就行(不然外网访问不了),安全组配置那里添加如下:2.下载ELK的包:下载地址:https://www.elastic.co/downloads下载最新版的、l…

    2022年4月19日
    35
  • 2026年OpenClaw必装10大Skills指南:零基础从部署到技能精通

    2026年OpenClaw必装10大Skills指南:零基础从部署到技能精通

    2026年3月13日
    2
  • 公司用的检查openweb服务是否启动的脚本

    公司用的检查openweb服务是否启动的脚本

    2022年3月8日
    37
  • 移动端开发绪论

    移动端开发绪论移动端开发基础通常移动端开发主流方案一共有两种一种是单独制作移动端页面,目前在市场上是主流方案还有一种是响应式页面兼容移动端这种虽然不是主流方案,但是应用这种开发方案的也不是没有.我们访问移动端页面可以通过以下两种方式进行访问:网址域名加m(mobile)就可以直接访问页面的移动端页面使用移动设备,进行访问,则可以直接跳转到移动端页面又到了我们最头疼的浏览器的兼容性问题移动端浏览器基本以webkit内核为主,因此我们只需要考虑webkit兼容性问题即可。移动端浏览器

    2022年6月24日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号