0

在离开带有表单的页面时,我想在没有任何用户确认的情况下保存所做的更改。

找到这个问题后,我调整了以下答案之一。请注意,我没有使用 return:

function setConfirmUnload(on) {
    window.onbeforeunload = (on) ? unloadMessage : null;
}
function unloadMessage() {
    alert('Gonna save now');
    setTimeout(validate_submit,500);
}

这仅在用户在表单中填写某些值时触发。如果元素值发生变化,我使用

setConfirmUnload(true);

结果 FF23:当用户单击某处离开页面时,会显示警报,在“确定”时执行 validate_submit(),出现新页面 - 但现在警报再次出现,用户在“确定”时返回到原始页面. 为什么?有人可以确认这种行为吗?

4

1 回答 1

0

window.onbeforeunload方法会导致出现一个确认框,其中包含分配给它的函数返回的任何消息。您可以在此方法中放置警报和其他内容,但它总是以确认消息结束。如果你的函数什么都不返回,它仍然会给出一条消息(由浏览器决定)说“你确定要离开这个页面”或者类似的东西。

于 2013-08-08T18:08:23.187 回答