是否可以使用退出按钮阻止用户关闭窗口[X]?我实际上在页面中为用户提供了一个关闭按钮来关闭窗口。基本上我要做的是强制用户填写表单并提交它。我不希望他们在提交之前关闭窗口。
我非常感谢您的意见,我不考虑在任何商业网站上托管。这是内部的事情,我们实际上是让所有员工参与我们设计的这个调查......
我知道这不是正确的方法,但我想知道我们遇到的问题是否有解决方案......
是否可以使用退出按钮阻止用户关闭窗口[X]?我实际上在页面中为用户提供了一个关闭按钮来关闭窗口。基本上我要做的是强制用户填写表单并提交它。我不希望他们在提交之前关闭窗口。
我非常感谢您的意见,我不考虑在任何商业网站上托管。这是内部的事情,我们实际上是让所有员工参与我们设计的这个调查......
我知道这不是正确的方法,但我想知道我们遇到的问题是否有解决方案......
它不会强迫某人留下,但会提示他们询问他们是否真的想离开,这可能是您可以管理的最佳跨浏览器解决方案。(如果您尝试离开中间答案,则类似于此站点。)
<script language="JavaScript">
window.onbeforeunload = confirmExit;
function confirmExit() {
return "You have attempted to leave this page. Are you sure?";
}
</script>
编辑:大多数浏览器不再允许onbeforeunload
.
请参阅2016 年 2 月 18 日的此错误报告。
onbeforeunload 对话框在现代 Web 上用于两件事:
1. 防止用户无意中丢失数据。
2. 诈骗用户。为了在不停止前者的同时限制它们对后者的使用,我们将不显示网页提供的字符串。相反,我们将使用通用字符串。
Firefox 已经这样做了[...]
如果您不想为所有事件显示弹出窗口,您可以添加条件,例如
window.onbeforeunload = confirmExit;
function confirmExit() {
if (isAnyTaskInProgress) {
return "Some task is in progress. Are you sure, you want to close?";
}
}
这对我来说很好用
当用户按下 ALT + F4 或从任务管理器关闭它时,你会怎么做
如果他们没有在 cookie 或数据库中完成它,你为什么不跟踪它,当他们下次访问时只需带回相同的屏幕......:顺便说一句......你还没有完成填写这个表格...... ”
当然,如果您在互联网泡沫破灭之前就在附近,您会记得色情风暴,如果您关闭 1 个窗口,其他 15 个窗口将打开..所以是的,有代码可以检测窗口关闭,但如果您按 ALT + F4 两次,它将关闭孩子和父母(如果是弹出窗口)
这将弹出一个对话框,询问用户是否真的想关闭或留下,并带有一条消息。
var message = "You have not filled out the form.";
window.onbeforeunload = function(event) {
var e = e || window.event;
if (e) {
e.returnValue = message;
}
return message;
};
然后,您可以在提交表单或其他内容之前取消设置它
window.onbeforeunload = null;
请记住,这非常烦人。如果您试图强迫您的用户填写他们不想填写的表格,那么您将失败:他们会找到关闭窗口的方法,并且永远不会回到您的卑鄙网站。
如果您发送的内部调查需要贵公司员工 100% 的参与,那么更好的方法是让表单跟踪响应者 ID/用户名/电子邮件等。每隔几天左右就发送一个不错的小通过电子邮件提醒您组织中的人员完成调查……您甚至可以自动执行此操作。