[英]onbeforeunload confirm dialog can be customised with custom dialog box with good design?
[英]Confirm dialog onbeforeunload
嗨,我读过很多关于这个主题的其他文章,但仍然感到困惑。 我只想在卸载页面之前实现2个简单的事情。
我正在做如下。
window.onbeforeunload = function (e) {
var model = _selectedClassNodes + ";" + _selectedIndicatorNodes + ";" + _selectedNode + ";" + _pageHeaderId;
$.ajax({
url: "@Url.Action("SaveDefaultSettings", "Maps")",
type: 'get',
data: { defaultSettings: model },
success: function (data) {
}
});
//if some unsaved data exists
if (editedRows.length > 0) {
if (confirm("Do you wish to save changes before continuing? CLick 'OK' for 'Yes' and 'Cancel' for 'No'")) {
SaveGridData();
}
}
};
由于我已经调试了断点,因此总是会触发SaveDefaultSettings,但不会出现确认框。
据我所记得,confirm()以前工作正常,但今天我注意到它已经停止工作。 我正在使用Chrome v 62.0
如果我将代码更改为
window.onbeforeunload = function (e) {
return "Do you wish to save changes before continuing? CLick 'OK' for 'Yes' and 'Cancel' for 'No'";
var model = _selectedClassNodes + ";" + _selectedIndicatorNodes + ";" + _selectedNode + ";" + _pageHeaderId;
$.ajax({
url: "@Url.Action("SaveDefaultSettings", "Maps")",
type: 'get',
data: { defaultSettings: model },
success: function (data) {
}
});
};
相反,现在默认对话框显示“您所做的更改可能不会保存”。重新加载/不重新加载
如果将字符串分配给returnValue Event属性,则会出现一个对话框,要求用户确认离开页面(请参见下面的示例)。 一些浏览器在对话框中显示返回的字符串,而其他浏览器则显示自己的消息。
这就是为什么我看到的是一条不同的消息,而不是我返回的消息。
我之前提到的那点很令人困惑,因为在另一个按钮单击时也使用了相同的确认对话框消息。
我的最终代码是
window.onbeforeunload = function (e) {
var model = _selectedClassNodes + ";" + _selectedIndicatorNodes + ";" + _selectedNode + ";" + _pageHeaderId;
$.ajax({
url: "@Url.Action("SaveDefaultSettings", "Maps")",
type: 'get',
data: { defaultSettings: model },
success: function (data) {
}
});
//if some unsaved data exists
if (editedRows.length > 0) {
return "There are some changes in grid data. You need to click 'Save Changes' or 'Cancel Changes' button on grid before continuing.";
}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.