我意识到这可能是重复的,但我现在一直在谷歌/搜索一天,我找不到满意的答案。如果SO上已经有答案,请发送给我。
我有一个客户端坚持要求退出邮件确认他们要退出网站,就像Gmail一样。 (我已经尝试过反对它了。他是不动产的,所以请不要评论这是不好的做法。)
我找到了这段代码:
<script>
window.onbeforeunload = function() {
return 'Are you sure you want to exit?';
}
<script>
但它无论我做什么都会运行 - 重新加载页面,点击导航等等。
我只想在用户关闭标签/浏览器时显示该消息。我怀疑这是一个简单的我缺少但我不是一个Javascript专家。
非常感谢任何帮助。
由于
编辑
这是非常好的工作。谢谢大家!
var isLeavingSite = true;
//This would be called on each link/button click that navigates
$('a, input[type="submit"]').click(function(){
isLeavingSite = false;
});
window.onbeforeunload = function() {
if(isLeavingSite)
return 'Are you sure you want to exit?';
}
答案 0 :(得分:1)
虽然这可能是相当多的工作(取决于您的网站的编写方式),但您可以做这样的事情(伪代码):
var isLeavingSite = true;
//This would be called on each link/button click that navigates
function GlobalLinkHandler()
{
isLeavingSite = false;
}
window.onbeforeunload = function() {
if(isLeavingSite)
return 'Are you sure you want to exit?';
}
如果你正在使用jQuery,你可以使用下面的代码翻转isLeavingSite
标志:
$('a, input[type="submit"]').click(function(){ isLeavingSite = false; });
答案 1 :(得分:1)
如果在网站上点击任何链接,则使用您设置的变量,然后在onbeforeunload
事件内检查是否设置了该变量意味着他们点击了链接或未设置含义他们正在关闭标签。
您也可以使用该变量来简单设置链接的href;然后,您可以检查他们在onbeforeunload
活动中点击了哪些链接,并允许您检查他们是否点击了链接以转到您网站上的其他网页或点击指向其他网站的外部链接
答案 2 :(得分:0)
如果你使用jQuery试试这个Confirm before exit