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