我正在尝试显示一个确认对话框,以显示自定义消息,该消息将根据单击的按钮保存或忽略对表单的更改。
我有一个部分代码段,我使用Firefox不再工作。 在beforeunload事件处理程序中使用confirm函数我无法在Firefox中显示确认对话框,以防止用户更改页面而不接受更改或放弃更改。
我的方法是不正确的还是浏览器的问题?
谢谢。
var confirmVal = false;
var firstConfirm = false;
$(window).bind('beforeunload', function () {
if (!firstConfirm) {
firstConfirm = true;
//This is where the confirm dialog should show
//It worked in firefox previously but not currently
//It still works in Internet Explorer
confirmVal = confirm("Save changes? \"OK\" saves changes. \"Cancel\" removes changes.");
}
if (confirmVal) {
// Perform update of database in this block with ajax
}
else
return;
});
答案 0 :(得分:0)
编辑/警告:似乎我的解决方案在Firefox中不起作用,请参阅下面的第一条评论。
您不需要确认()。 只需在返回中放入一个字符串即可触发警报。
例如:
$(window).on('beforeunload', function() {
var e = $.Event('webapp:page:closing');
$(window).trigger(e); // let other modules determine whether to prevent closing
if(e.isDefaultPrevented()) {
// e.message is optional
return e.message || 'You have unsaved stuff. Are you sure to leave?';
}
});