我有这段代码:
$(window).bind('beforeunload', function () {
$("#dialogsendnotifications").dialog('open');
});
$("#dialogsendnotifications").dialog({
autoOpen: false,
closeOnEscape: false,
buttons: {
"Yes": function () {
$(this).dialog('close');
},
"No": function () {
$(this).dialog('close');
}
}
});
所以基本上它的作用是当用户试图离开它时会弹出yes no对话框。问题是对话框出现了,但在用户选择按钮之前它会离开页面。
有人可以告诉我如何让它等到用户选择了答案吗?
答案 0 :(得分:3)
你做不到。 onbeforeunload
事件非常非常严格。您所能做的就是返回一个浏览器将在其自己的对话框中使用的字符串。你根本无法做任何事情。
jQuery(function($) {
$(window).bind("beforeunload", function(event) {
return "This is the message you're allowed to provide";
});
});
答案 1 :(得分:0)
谢谢你们。对我来说,这有助于:
$(window).on('beforeunload', function(){
return '';
})
但是在我的例子中,我在" beforeunload" -function中有一个循环(.each()
)。然后不要忘记在想要返回值之前退出循环;)
答案 2 :(得分:-1)
返回false以阻止此操作:
$(window).bind('beforeunload', function () {
$("#dialogsendnotifications").dialog('open');
return false;
});