在离开带有表单的页面时,我想保存所做的更改,而无需任何用户确认。
找到这个question我改编了以下答案之一。请注意,我没有使用return:
function setConfirmUnload(on) {
window.onbeforeunload = (on) ? unloadMessage : null;
}
function unloadMessage() {
alert('Gonna save now');
setTimeout(validate_submit,500);
}
仅当用户填写表单中的某个值时才会触发此操作。如果元素值发生变化,我使用
setConfirmUnload(true);
FF23中的结果:当用户点击某处离开页面时,显示警报,在“确定”时执行validate_submit(),出现新页面 - 但现在警报重新出现,用户返回到原始页面“好”。为什么?有人可以证实这种行为吗?
答案 0 :(得分:0)
window.onbeforeunload
方法会显示一个确认框,其中包含分配给它的函数返回的任何消息。您可以在此方法中添加警报和其他内容,但它始终以确认消息结束。如果你的函数没有返回任何内容,它仍然会给出一条消息(由浏览器确定),说“你确定要离开这个页面”或者其他类似的东西。