我有一个表单,其中输入字段保存为onChange
。在Firefox(5)中,即使关闭了窗口,此方法仍然有效,但对于Chrome和IE则不起作用,即使他们在输入后尝试关闭窗口,我也必须确保我保存了这些数据一个字段,但是没有发生onBlur
事件(即,他们已经在文本框中键入了一些内容,但是没有在其中跳出标签)。
我已阅读以下有关window.onbeforeunload
的文章:
article 1
article 2
如果我使用以下内容:
window.onbeforeunload = function() {
return "onbeforeunload";
}
然后我得到一个带有
onbeforeunload
的弹出窗口。但是如果我尝试:
window.onbeforeunload = function() {
alert("onbeforeunload");
}
那么任何浏览器,甚至Firefox都不会发生任何反应。
我想要实现的是:
window.onbeforeunload = function() {
saveFormData();
}
如果有人能指出我可能会出问题的地方,我将不胜感激。
最佳答案
您必须从return
到onbeforeunload
:
window.onbeforeunload = function() {
saveFormData();
return null;
}
function saveFormData() {
console.log('saved');
}
更新
根据评论,警报似乎不再适用于较新的版本,其他任何事情都会发生:)
来自MDN
还建议通过
addEventListener
接口(interface)使用它:现在,更新后的代码将如下所示:
window.addEventListener("beforeunload", function (e) {
saveFormData();
(e || window.event).returnValue = null;
return null;
});
关于javascript - 捕获window.onbeforeunload,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29680950/