繁体   English   中英

浏览器/选项卡使用javascript(或任何其他语言)关闭检测

[英]Browser/tab close detection using javascript (or any other language)

我在各个地方搜索了这个问题,但他们提到的只是使用了javascript window.unloadwindow.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.');
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM