我正在设计一个测验Web应用程序,作为课堂作业的一部分。该应用程序的目标是评估学生的JavaScript技能。当用户关闭浏览器并重新访问该应用程序时,该应用程序应检查本地存储并显示一条消息,询问播放器是否要从他/她离开的位置继续。
因此,我想在用户关闭窗口或选项卡之前保存应用程序的状态。
我正在使用onunload
,它无法在chrome中使用。我在IE中测试了它,效果很好。
在IE中,我发现了另一个问题。 onunload
函数无法访问局部变量。例如,console.log(localVar)
正在打印未定义的变量值。
最后,我想在chrome,mozilla和IE中运行该应用程序。
我可以在每次用户操作时更新本地存储。但这会消耗浏览器上的资源。此外,还有一个计时器,显示完成测验所需的时间。恐怕这是每次更新本地存储的不好方法。所以我想我会在onunload
或onbeforeunload
函数中做到这一点。
下面是代码。
window.onbeforeunload = function() { // tried both unload and onbeforeunload
console.log(currentRoundNumber); // prints undefined in IE.
return false;
}
答案 0 :(得分:0)
您可能会在尝试离开页面时通知用户。但是,虽然更新locationStorage本身是一种更好的方法。
window.addEventListener("beforeunload", function (e) {
var confirmationMessage = "\o/";
(e || window.event).returnValue = confirmationMessage; //IE
return confirmationMessage; //Webkit, Safari, Chrome
});