我有JS函数window.onbeforeunload,它返回一个msg,浏览器在confirmmbox中显示。现在,我如何知道用户点击该页面还是留在页面上?
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.";
}
答案 0 :(得分:0)
无论如何都要更新变量。如果他们留下来,你会得到你想要的东西;如果他们离开了,那就不重要了。
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.";
}
在您尝试离开http://jsfiddle.net/shomz/Ly6WE/3/
后,查看x
会发生什么
答案 1 :(得分:0)
实现此目的的Crossbrowser代码:
(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个按钮的确认框"离开此页面"和#34;留在这个页面"。当用户按下"离开此页面" - >标签将关闭。但是当用户点击"留在这个页面" - >什么都不会发生,用户不会丢失数据。