Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript(或任何其他语言)进行浏览器/选项卡关闭检测_Javascript_Dom Events - Fatal编程技术网

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

使用Javascript(或任何其他语言)进行浏览器/选项卡关闭检测,javascript,dom-events,Javascript,Dom Events,我在不同的地方搜索了这个问题,但是他们提到的只是Javascriptwindow.unload和window.onbeforeuload的使用。而且它在Chrome中大部分时间都不工作,因为它被阻塞了 那么谷歌是如何做到这一点的呢。如果我们正在撰写邮件,并且错误地关闭了标签,谷歌会提示我们“你确定吗?”框 有人能帮我吗 实际上,我想做的是,当用户填写表单时,错误地单击tab close时,请求用户确认。如果是,我允许他离开,否则他会留在页面上并继续填写表格。我测试过,MDN上发布的示例在Chro

我在不同的地方搜索了这个问题,但是他们提到的只是Javascript
window.unload
window.onbeforeuload
的使用。而且它在Chrome中大部分时间都不工作,因为它被阻塞了

那么谷歌是如何做到这一点的呢。如果我们正在撰写邮件,并且错误地关闭了标签,谷歌会提示我们“你确定吗?”框

有人能帮我吗


实际上,我想做的是,当用户填写表单时,错误地单击tab close时,请求用户确认。如果是,我允许他离开,否则他会留在页面上并继续填写表格。

我测试过,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>

window.onbeforeunload=函数(e){
e=e | | window.event;
//适用于IE和Firefox版本4之前的版本
如果(e){
e、 returnValue='任何字符串';
}
//狩猎旅行
返回'anystring';
};
函数formSubmit(){
window.onbeforeunload=null;
}

。。。
这样,将打开一个对话框,该对话框不会被弹出窗口阻止程序阻止,因为它是由用户单击创建的。

您可以使用以下功能:
如果您只想在用户更改页面上的表单时询问他们是否希望离开页面,请查看。请记住,我开发它是为了在非常简单的页面上使用它,只有一两个表单

:一个jQuery插件,用于检查页面上是否有任何形式的更改,并在离开页面前警告用户

您无需执行任何操作,只需将脚本加载到页面上。不过,您可以更改默认设置:

JoelPurra.PageHasFormChanges.setOptions({
leavingPageWarningMessage:“你确定吗?”
});

如果你使用Ajax提交表单,你可以考虑设置<代码> ReestEngurnOnEngultDebug <代码> > <代码> Trime< /Cord>。< /P>我不知道谷歌是否有另一种方法来检测这一点。但您提到的两个功能都是针对本案例的……非常感谢。:)仍然需要学习很多关于js事件的知识。。有什么好的参考资料吗?还有一件事。如果我在页面中有一个表单,当用户单击submit按钮时,它仍然要求确认。但我不想确认提交的表格。如何纠正?这也被chrome阻止。(因为它相当于js onunload)。不管怎么说,多亏了彼得,问题现在解决了。

   <form onsubmit="formSubmit()">...</form>
$(window).unload(function() {
  alert('Handler for .unload() called.');
});