我在用户卸载页面时使用此事件在localStorage中保存一些数据:
$window.onbeforeunload = function(){
saveSomeDataInLocalStorage();
if($scope.message){
return "You haven't sent your message yet. Do you want to leave without sending?";
}
else
return null;
};
进入if($scope.message)
条件时,返回确认消息,数据保存在localStorage(saveSomeDataInLocalStorage
函数)中。 一切正确 ......
但是......如果输入else
条件,则不会保存通过saveSomeDataInLocalStorage
的数据。
我不会理解onbeforeunload
事件可能......
我需要在两种情况下保存一些数据,否则返回确认。
非常感谢你!
答案 0 :(得分:0)
如果返回null,则不显示任何消息,因此页面卸载继续。 否则,如果您显示此消息,实际上在确认过程中数据已保存,因此如果您想保存某些内容,则需要“冻结”页面。 尝试始终显示消息和除此之外的某些状态,因此用户可以看到实际保存的数据,并且在处理未完成时不按“是”。
此活动无法以任何方式截获。它的处理程序只能返回确认消息。希望这会有所帮助。