使用Javascript(或任何其他语言)进行浏览器/选项卡关闭检测
Browser/tab close detection using Javascript (or any other language)
我在不同的地方搜索了这个问题,但他们只提到了Javascript window.unload
和window.onbeforeunload
的使用。此外,它在Chrome浏览器中大多数时候都不起作用,因为它被屏蔽了。
那么谷歌是如何做到这一点的呢?如果我们正在撰写一封邮件,并错误地关闭了标签,谷歌会提示我们:;你确定吗"盒
有人能帮我吗?
实际上,我想做的是询问用户的确认,当他填写表格时,错误地点击了关闭选项卡。如果是,我允许他导航离开,否则他会留在页面上;继续填写他的表格。
我进行了测试,发布在MDN上的示例在Chrome中运行良好。
<script>
window.onbeforeunload = function (e) {
e = e || window.event;
// For IE and Firefox prior to version 4
if (e) {
e.returnValue = 'Any string';
}
// For Safari
return 'Any string';
};
function formSubmit() {
window.onbeforeunload = null;
}
</script>
<form onsubmit="formSubmit()">...</form>
通过这种方式打开一个对话框,该对话框不会被弹出窗口阻止程序阻止,因为它源于用户单击。
如果您只想在用户更改了页面上表单中的任何内容后询问他们是否要离开页面,请查看PageHasFormChanges。请记住,我开发它是为了在非常简单的页面上使用,只有一两个表单。
PageHasFormChanges:一个jQuery插件,用于检查页面上是否有任何形式的更改,并在离开页面前警告用户。
您不需要做任何事情,只需在页面上加载脚本即可。您可以更改默认值:
JoelPurra.PageHasFormChanges.setOptions({
leavingPageWarningMessage: "Are you sure?"
});
如果您使用ajax提交表单,可以考虑将resetWarningOnPreventedSubmit
设置为true
。
您可以使用jquery卸载函数:
$(window).unload(function() {
alert('Handler for .unload() called.');
});
相关文章:
- location.reload(true)崩溃浏览器选项卡
- 我们如何在互联网断开连接或用户关闭选项卡/浏览器时调用注销servlet
- 单击按钮即可在浏览器的新选项卡中打开 Sapui5 详细信息页面
- 如何在现有的浏览器选项卡中打开url
- 在用户关闭/更改移动浏览器选项卡之前进行检测
- 在新的浏览器选项卡上加载新的aspx页面后调用JavaScript函数
- 更改当前选项卡或浏览器窗口的标题
- 询问用户何时尝试关闭浏览器选项卡
- 如何在windowsphone 7浏览器中通过javascript打开新窗口或选项卡
- 自动关闭或覆盖通过命令行打开的浏览器选项卡
- 在两个浏览器选项卡之间共享变量范围
- 仅在使用javascript和html的浏览器中在相同的两个选项卡之间切换
- 检查具有特定标题的浏览器选项卡是否已存在
- 编写脚本以关闭其他选项卡或浏览器
- 关闭浏览器时发出警报,关闭选项卡并前后单击按钮时发出警报
- 如何防止用户使用浏览器选项禁用脚本
- 检测通过移动 Safari 中的 JavaScript 关闭浏览器选项卡
- 咕噜咕噜浏览器化忽略选项
- 当用户关闭浏览器选项卡时,如何使用 PHP 或 javascript 从我的站点注销用户
- 如何在重新加载选项(浏览器)时限制页面加载