确认退出对话框

12

在大多数页面中,如果您正在执行某项操作(例如编辑、创建),当我尝试退出时,它通常会提示我是否真的要退出。对话框会给我两个选项:离开或取消并继续。如何在JavaScript中实现这一点?我是否需要使用meta元素?除非这是实现此目的的真正唯一方法,否则请不要提到beforeunload


请查看以下链接:http://www.w3schools.com/js/tryit.asp?filename=tryjs_confirm - rags
@rags 不仅仅是在确认框上,当您尝试退出页面时也会出现确认框。 - slice
3个回答

21

为什么不提到onbeforeunload?它是内置的方法,我认为使用它没有问题。

function myConfirmation() {
    return 'Are you sure you want to quit?';
}

window.onbeforeunload = myConfirmation;

1
这将产生浏览器默认的离开或停留对话框。如果你想要更炫酷的效果,你可以让该函数调用jQuery或Fancybox对话框,然后根据在那个更炫酷的对话框中发生的情况返回truefalse - casraf
1
@chenasraf 我不知道浏览器会产生默认对话框!+1 - slice
@chenasraf,这里有一个时间限制,我必须等待5分钟才能接受任何答案。 - slice

0

我使用的是:

onClick="return confirm('Sure you want to exit..?')"

-5
window.onbeforeunload = function() { 
      if(confirm('are you sure to exit?')) 
           return true; 
      else 
           return false; 
};

@Gaurav 谢谢你的漂亮打印。 - slice
Alex,这会导致重复的对话框。 - slice
5
提醒大家,由于onbeforeunload中confirm被禁止了,这种方法已经不再有效了。现在会出现一个默认对话框,上面会显示“true”或“false”。只需让你的onbeforeunload返回你想要向用户显示的文本,浏览器会自动处理其余部分。 - Tom C

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接