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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Pokemon GO将在日本发布 网络安全公司呼吁防范虚假软件

    Pokemon GO将在日本发布 网络安全公司呼吁防范虚假软件

    2022年3月5日
    49
  • verycd下载办法_无损音乐 MKV 下载

    verycd下载办法_无损音乐 MKV 下载自2012年8月30日之后,verycd上所有资源的ed2k下载链接均被隐藏。没有登录的会员会显示“该资源为版权方声明保护内容,VeryCD不提供其下载”的字样现在电驴也不让下载了,和以前的狗狗一样,资源都屏蔽了,今天无意得到了一个可以下载电驴上的资源的方法,很简单,应该是漏洞,不知道能用多久,但是目前至少可以用。自2012年8月30日之后,verycd上所有资源的ed2k下载链接均被隐藏。没有登

    2022年8月10日
    5
  • Eclipse导入Maven工程报异常

    Eclipse导入Maven工程报异常蛋疼的一天,今天刚弄好新机子,迁移项目,导入的时候报如下错误:Couldnotcalculatebuildplan:Pluginorg.apache.maven.plugins:maven-resources-plugin:2.6oroneofitsdependenciescouldnotberesolved:Failedtoreadartifac

    2022年5月18日
    34
  • icem网格划分如何给内部面网格,ICEM CFD处理混合网格划分中低质量的问题

    icem网格划分如何给内部面网格,ICEM CFD处理混合网格划分中低质量的问题所谓的混合网格,指的是模型中同时存在结构网格与非结构网格的情况。采用混合网格的主要优势在于:对于复杂的几何,我们可以将其分解成多个几何,对于适合划分结构网格的采用结构网格划分方式,而对于非常复杂的部分,可以使用非结构方式进行划分。然而采用混合网格也有一些缺点:交接面位置网格质量会非常差。因此我们需要采用一些方式对网格质量进行改善。另外对于交界面的处理也存在一些问题。我们先说说在ICEMCFD中进…

    2022年5月26日
    38
  • ssm框架过时了吗_spring实战

    ssm框架过时了吗_spring实战SpringSpring是一个开源的免费的框架Spring是一个轻量级的,非入侵式的框架控制反转(IOC),面向切面编程(AOP)支持事务的处理,对框架整合的支持IOC理论UserDaoUserDaoImpUserSeviceUserServiceImp在之前,用户的需求可能会影响原来的代码。使用一个set。public void setUserDao(UserDao userDao){ this.userDao = userDao;}之前是主动创建对象,控制

    2022年8月9日
    2
  • Vim 基本配置和经常使用的命令

    Vim 基本配置和经常使用的命令

    2022年1月10日
    38

发表回复

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

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