【发布时间】:2010-12-08 01:12:26
【问题描述】:
我遇到了一个任务管理应用程序的问题,用户偶尔会关闭他们的浏览器/标签,并且他们键入的信息会因为他们不小心关闭浏览器/标签而消失,从而导致他们输入的文本丢失(有些人可以花半个小时输入文字)。
所以我必须提供一个解决方案,我有几个想法,但想要最好的建议,或者如果你有更好的解决方案,请告诉我。
选项 1:
- 在
window.onunload或window.onbeforeunload事件中调用confirm() 对话框并首先测试任务记录区域中是否有任何文本且不为空白。如果它不为空,请调用window.confirm()并询问用户是否要关闭选项卡/窗口而不保存日志。
我对选项 #1 的担忧是它可能会干扰用户。
选项 2:
- 在同一事件中,不要调用任何 confirm(),而是将任务日志区域中的文本强制保存在 cookie 中。然后可能会提供一个按钮,尝试从同一页面上的 cookie 中恢复任何已保存的任务信息,因此点击该按钮将使其解析 cookie 并检索信息。
【问题讨论】:
-
“用户侵入”是什么意思?
-
好吧,您知道警报和确认窗口是多么令人讨厌,但是这可能是该规则的唯一例外?我不知道。
-
如果他们做的事情“正确”,就没有对话,对吗?如果他们输入东西,忘记保存和丢失他们的工作很糟糕,对吧?问他们是要保留还是忽略未保存的更改有什么问题?
标签: forms onbeforeunload onunload saving-data