卸载前如何保存网页状态

时间:2018-08-09 10:24:39

标签: javascript

我正在设计一个测验Web应用程序,作为课堂作业的一部分。该应用程序的目标是评估学生的JavaScript技能。当用户关闭浏览器并重新访问该应用程序时,该应用程序应检查本地存储并显示一条消息,询问播放器是否要从他/她离开的位置继续。

因此,我想在用户关闭窗口或选项卡之前保存应用程序的状态。

我正在使用onunload,它无法在chrome中使用。我在IE中测试了它,效果很好。

在IE中,我发现了另一个问题。 onunload函数无法访问局部变量。例如,console.log(localVar)正在打印未定义的变量值。

最后,我想在chrome,mozilla和IE中运行该应用程序。

我可以在每次用户操作时更新本地存储。但这会消耗浏览器上的资源。此外,还有一个计时器,显示完成测验所需的时间。恐怕这是每次更新本地存储的不好方法。所以我想我会在onunloadonbeforeunload函数中做到这一点。

下面是代码。

window.onbeforeunload = function() {  // tried both unload and onbeforeunload
        console.log(currentRoundNumber); // prints undefined in IE.
        return false;
    }

1 个答案:

答案 0 :(得分:0)

您可能会在尝试离开页面时通知用户。但是,虽然更新locationStorage本身是一种更好的方法。

 window.addEventListener("beforeunload", function (e) {
      var confirmationMessage = "\o/";

      (e || window.event).returnValue = confirmationMessage; //IE
      return confirmationMessage;                            //Webkit, Safari, Chrome
    });