Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-无法在Firefox中显示确认对话框_Javascript_Jquery - Fatal编程技术网

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

Javascript jQuery-无法在Firefox中显示确认对话框,javascript,jquery,Javascript,Jquery,我试图显示一个确认对话框来显示一条自定义消息,该消息将根据单击的按钮保存或忽略对表单的更改 我有一部分代码段是我用Firefox编写的,现在已经不工作了。 使用beforeunload事件处理程序中的确认函数,我无法在Firefox中显示确认对话框,以防止用户在不接受更改或放弃更改的情况下更改页面 我的方法是否不正确,或者这是浏览器的问题 多谢各位 var confirmVal=false; var firstConfirm=false; $(窗口).bind('beforeunload',函数

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

我有一部分代码段是我用Firefox编写的,现在已经不工作了。 使用beforeunload事件处理程序中的确认函数,我无法在Firefox中显示确认对话框,以防止用户在不接受更改或放弃更改的情况下更改页面

我的方法是否不正确,或者这是浏览器的问题

多谢各位

var confirmVal=false;
var firstConfirm=false;
$(窗口).bind('beforeunload',函数(){
如果(!firstConfirm){
firstConfirm=true;
//这是“确认”对话框应显示的位置
//它以前在firefox中工作过,但现在没有
//它仍然在InternetExplorer中工作
confirmVal=confirm(“保存更改?\“确定”保存更改。\“取消”删除更改”);
}
如果(确认){
//使用ajax在此块中执行数据库更新
}
其他的
返回;
});

编辑/警告:似乎我的解决方案在Firefox中不起作用,请参见下面的第一条评论

对此,您不需要confirm()。 只需在返回中放入一个字符串即可触发警报

例如:


更多信息如下:。

在JSFIDLE中使用FF对我来说很好。您确定其中包含jquery吗?谢谢你的链接。我必须在JSFIDLE中“运行”代码才能看到对话框。我想确定代码在“离开”页面时起作用。这是我的问题。但这给了我一些信心,我的代码正在触发确认。好的,所以我尝试转到当前页面以外的新页面,对话框出现了。是否还需要其他事件(如重新加载)来触发确认?您不再能够从beforeunload处理程序内部发出警报/确认,因此这不再有效。这已在[]中“修复”。这在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?';
    }
});