如何知道window.onbeforeunload的返回

时间:2014-08-01 09:50:52

标签: javascript

我有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."; 
}
  

http://jsfiddle.net/Ly6WE/

2 个答案:

答案 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;留在这个页面"。当用户按下"离开此页面" - >标签将关闭。但是当用户点击"留在这个页面" - >什么都不会发生,用户不会丢失数据。