- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
编辑:由于我的问题似乎不清楚 - 我只想在用户通过关闭浏览器/键入新链接/单击离开页面时添加 confirm()
消息现有链接
我已经阅读了很多关于卸载/卸载事件之前的主题,但这些都没有真正帮助我,可能是我做错了。
我通过单击所有链接使脚本正常工作,但是“beforeunload”事件在我的情况下不起作用
普通脚本
$('a').on('mousedown', function(){
var message = 'You are about to leave the page. Continue?'
var result = confirm(message)
if (result) {
// some stuff
} else {
// some other stuff
}
})
尝试使用 beforeunload
$(window).on('beforeunload', function(){
var message = 'You are about to leave the page. Continue?'
var result = confirm(message)
if (result) {
// some stuff
} else {
// some other stuff
}
})
什么也没有发生。我也尝试过卸载事件,但仍然没有运气。
最佳答案
beforeunload
事件有点奇怪。大多数浏览器不允许您从处理程序触发确认对话,因为这将允许站点不断弹出确认对话而不是离开页面。相反,您应该返回要显示的消息,例如:
$(window).on('beforeunload', function(e) {
var msg = 'You are about to leave the page. Continue?';
(e || window.event).returnValue = msg; //IE + Gecko
return msg; //Webkit
});
如果您想在结果对话退出后运行额外的 javascript,请添加一个 onunload
监听器。
编辑
正如评论中所指出的,这些事件因浏览器而异。例如,最新版本的 gecko (firefox) 不允许自定义消息。
关于javascript - 用于触发 beforeunload/unload 事件的替代 jquery 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23445332/
我在 Chrome 和 Safari 上试过了,这两个浏览器都不行。当我刷新页面时,Chrome 中只有一个警告窗口如下所示。如果仅使用 evt.preventDefault(),则该函数不起作用。不
我的代码: //hold window open on form change window.onbeforeunload = function(e) { if(formChanges > 0
以下代码始终显示相同的消息:此页面要求您确认等。是否可以更改此文本以显示其他内容? $(window).bind('beforeunload', function(){ }); 是否可以查询用户是真的
我有一小段代码: $(window).bind('beforeunload', function() { $.ajax({ async: false, type: 'POST',
我想知道是否可以在 beforeunload 事件上向数据库发送查询。 $(window).on('beforeunload',function() { console.log('before
import React, { useState, useEffect } from "react"; import "./styles.css"; export default function A
我在移动浏览器上工作了大约 3 个月,现在我遇到了一个无聊的问题 beforeunload和 onload .在两种情况下,它们不能清楚地工作。当我关闭选项卡时,浏览器经常调用它们。但是,当用户通过一
第 1 页包含动态表单,第 2 页是对提交数据的审核。我有以下限制: 提交第 1 页时没有 beforeunload 警告; beforeunload 刷新页面 1 时发出警告; 从第 2 页发出 h
我已经使用 window.beforeunload 功能禁用了页面重定向/重新加载,但是一旦页面中发生表单提交,我想重定向到下一页,而不显示 window.beforeunload 警报。我怎样才能做
我有一个表单,当某些元素获得焦点时它会发生变化。 我希望在离开页面时收到警告。所以我保留了一个标志,告诉我这些元素何时发生变化。 问题在于,“此页面正在要求您确认是否要离开”警报始终提示; funct
我一直在思考应该使用哪一个:beforeunload或onbeforeunload它们似乎都在做非常相似的事情,但具有不同的浏览器兼容性。 一些背景: 我有一个表格。在页面加载时,我序列化表单并将其保
当用户单击按钮时,我使用 JqueryUI 自定义确认框。 这是脚本, function exit() { $("#dialog-confirm").dialog({
我正在尝试找出如何限制表单上的 beforeunload 命令。我已经能够弄清楚如何取消绑定(bind) beforeunload 命令,然后当我离开这个有效的表单时。但是,无论表单是否更改,每次都会
在我的应用程序中,我有一个评论框,我想在其中显示一条消息,表明它尚未保存。在函数 warnOpenEditor 中,我添加了 window.onbeforeunload 事件,但它不会触发。附上TS和
我有一个简单的函数,可以在发出新页面请求时显示旋转器叠加层。 $(window).on("beforeunload", function() { $('#nav-spinner').show();
我有一个主干应用程序,我想在导航到未保存的更改之前提醒用户。我有一个事件要做: $(window).bind('beforeunload', function() { var status =
我正在将 JSF 与omnifaces 和cdi 一起使用。在 xhtml 页面中,我使用了一些类似于(下面的 jsf 页面有更多详细信息) 的 js window.onbeforeunload =
我在我的页面上使用了 beforeunload 事件,这样当用户试图关闭我的网站/标签时,我会提示用户他们不应该离开网站,除非填写所有表格。但问题是我的页面有一个丰富的表单,在每个部分表单填写后重新加
我正在页面中检测表单更改,所以我已经处理了 $('#element').change(function(){ metaDataChange = true; }); 这样当用户离开页面并且在表单的输入中
我明白用自定义对话框替换 beforeunload 对话框是不可能的,如果我们需要为用户设置自定义消息,我们必须返回一个字符串我们的 beforeunload 处理程序: {Custom messag
我是一名优秀的程序员,十分优秀!