在 stackoverflow.com 上查看了许多类似的问题(也在其他资源上),但没有找到答案。所以我简化和概括了问题。这似乎是显而易见的解决方案:
$(document).ready(function() {
var a = 3;
var b = 5;
// no message when pressed submit button
$('form').submit(function() {
$(window).off('beforeunload');
});
// confirm of the need to save
$(window).on('beforeunload', function(e) {
if (a != b)
if (confirm('You changed data. Save?')) {
$('form').submit();
// alert('Your data is saved. (With alert submit() work only in FireFox!?)');
}
});
});
但不提交作品。如果你使用 alert(),它只在 FireFox 中有效。我想更正(可能没有延迟)跨浏览器解决方案。也许谁从根本上知道另一种方法解决方案。
PS 关于第一部分中描述的一些原创性 beforeunload:https ://stackoverflow.com/a/6065085/1356425 ,但这不是解决方案明显的功能。