jQuery - 无法在Firefox中显示确认对话框

时间:2014-03-27 18:37:32

标签: javascript jquery

我正在尝试显示一个确认对话框,以显示自定义消息,该消息将根据单击的按钮保存或忽略对表单的更改。

我有一个部分代码段,我使用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;

            });

1 个答案:

答案 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?';
    }
});

此处有更多信息:http://hackab.it/2013/05/page-closing-confirm/