我知道有很多问题,但没有什么能正确回答我。我想在用户离开页面时显示确认对话框。如果用户按下取消,他将保持在页面上,如果确定,他所做的更改将通过调用方法回滚。我这样做了:
window.onbeforeunload = function () {
var r = confirm( "Do you want to leave?" );
if (r == true) {
//I will call my method
}
else {
return false;
}
};
问题是我正在获取浏览器默认弹出窗口:“LeavePage / StayOnPage”
此页面要求您确认是否要离开 - 为您提供数据 已输入可能无法保存。
此消息显示在Firefox中,在Chrome中略有不同。我在第一个确认对话框上按OK后弹出这个弹出窗口。
有没有办法不显示此对话框? (第二个,我没有创建)。 或者,如果有任何方法可以控制此弹出窗口,有没有人知道如何做到这一点? 感谢
答案 0 :(得分:10)
这就是我所做的,修改以满足您的需求:
// This default onbeforeunload event
window.onbeforeunload = function(){
return "Do you want to leave?"
}
// A jQuery event (I think), which is triggered after "onbeforeunload"
$(window).unload(function(){
//I will call my method
});
注意:它经过测试可在Google Chrome,IE8和IE10中使用。
答案 1 :(得分:0)
window.onbeforeunload = function() {
if (data_needs_saving()) {
return "Do you really want to leave our brilliant application?";
} else {
return;
}
};
答案 2 :(得分:0)
这很简单。就用
window.onbeforeunload = function(){
return '';
};
在用户重新加载时提示,以及
window.close = function(){
return '';
};
在用户关闭页面时进行提示。
但是用户必须在页面上单击一次,或者在页面上执行任何操作以供代码检测。您不必在 return'';
中添加任何内容,因为 JavaScript 解释器会忽略它。