我的代码:
//hold window open on form change
window.onbeforeunload = function(e) {
if(formChanges > 0) {
if(formData != initFormData) {
if(confirm('here')) {
e.preventDefault();
}
else {
e = null;
}
}
else {
e = null;
}
}
else {
e = null;
}
};
三个变量(
formChanges
、 formData
和 initFormData
)都被正确填充,很少有测试表明它们在函数中被正确读取。问题是页面无论如何都会卸载,并且没有出现确认对话框。控制台日志在卸载之前闪烁片刻(我似乎无法将其内容写入文件),我可以看到消息
Blocked confirm 'here' during beforeunload
,但在我访问它之前它就消失了。任何帮助表示赞赏! 最佳答案
使用 onbeforeunload 时,您必须返回一个字符串,如下所示:
window.onbeforeunload = function(e) {
return 'Dialog text here.';
};
来源:https://developer.mozilla.org/en-US/docs/Web/API/Window.onbeforeunload
关于javascript - beforeunload 确认调用故障排除,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21726301/