Javascript 如何知道window.onbeforeunload的返回
我有一个JS函数window.onbeforeunload,它返回一个消息,浏览器在confirbox中显示。现在,我如何知道用户单击是离开该页面还是停留在该页面上Javascript 如何知道window.onbeforeunload的返回,javascript,Javascript,我有一个JS函数window.onbeforeunload,它返回一个消息,浏览器在confirbox中显示。现在,我如何知道用户单击是离开该页面还是停留在该页面上 Javascript window.onbeforeunload = function(e) { return "Click STAY ON PAGE then SAVE to save any data you've entered.\n If you've already SAVED select LEAVE PAGE to
Javascript
window.onbeforeunload = function(e) {
return "Click STAY ON PAGE then SAVE to save any data you've entered.\n If you've already SAVED select LEAVE PAGE to continue.";
}
无论如何都要更新变量。如果他们留下来,你会得到你想要的;如果他们走了,那没关系
window.onbeforeunload = function(e) {
var myVariable = 'updated value'; // of course, var not from this scope
return "Click STAY ON PAGE then SAVE to save any data you've entered.\n If you've already SAVED select LEAVE PAGE to continue.";
}
查看尝试离开后x发生的情况:实现此功能的交叉浏览器代码:
(function() {
function beforeUnload(event) {
event = event || window.event;
var confirmationMessage = 'Changes not saved';
event.returnValue = confirmationMessage;
return confirmationMessage;
}
window.addEventListener('beforeunload', beforeUnload, false);
})();
这就是工作原理。当触发beforeUnload时,用户将获得带有2个按钮的确认框离开此页面并停留在此页面上。当用户按“离开此页面”->“选项卡”将关闭。但当用户单击“保持在此页面上”时->不会发生任何事情,用户不会丢失数据。如果用户不再在该页面上,则有可能会留下这些数据。@Shomz但如果他们保持不变,我需要更改变量的值。我该怎么做?如果他们确认离开,onunload将不会被呼叫。@AdrianoRepetti我不担心他们离开页面。我担心他们是否会留下来。我需要更新一个变量。不管怎么说,你真的不能这么做。您可以设置一个超时函数,请参见[this][1][1]:这与OP最初的设置非常相似。1。如果事件未定义,则最好从window.event获取事件。2.如果return不起作用,那么需要添加event.returnValue,这样就可以了。当然,这几乎是一样的,但它包含了一些更好的改进。