如何向网页用户确认是否真的想离开该页面?

8

如何询问用户“您确定要离开该页面吗?”

例如,当您在Stackoverflow上提出问题时,如果单击返回按钮?


你的问题不太有意义,你是指它在没有按提交按钮的情况下检查问题吗? - Elliott
我认为他指的是当您在SO上撰写问题时,已经完成了一半并且按下浏览器上的后退按钮时出现的确认对话框。 - Manos Dilaverakis
1
我认为这个问题有你要找的答案。它指向了这个更相关的问题。还有一个问题在这里:点击查看 - rojoca
1
请注意投票按钮上的标题:“此问题不清楚或无用” - 评论者需要从您那里挖掘问题的含义,这可能意味着您的问题不清楚 - 并且一些人会在这里对不清楚的问题进行负面评价。 - Piskvor left the building
相关:https://dev59.com/02w05IYBdhLWcg3wTwKY - Ciro Santilli OurBigBook.com
显示剩余2条评论
1个回答

4

最简单的方法是将事件处理程序绑定到JavaScript的“unload”事件上。使用jQuery的.unload()事件处理程序非常容易。在您绑定的方法中,您可以检查页面的表单字段是否有文本输入。假设它们有,弹出一个警报通知用户如果他们从页面导航,他们将失去任何未保存的数据。

无论何种原因,只要用户离开页面,此方法都会触发警报。

$(window).bind('beforeunload', function() {
  alert('Handler for .beforeunload() called.');
});

显然这不太用户友好,但是进行一些快速修改可以使其对您的问题可行。


2
我认为你会发现unload事件太晚了,无法阻止用户离开。你需要使用onbeforeunload事件。此外,你不能在所有浏览器中使用jQuery来绑定onbeforeunload - rojoca
所以您想说要使用纯JavaScript而不是jQuery,因为它更兼容浏览器。 - Mukesh Yadav
@MakDotGNU - 请查看我回答中链接的问题。 - rojoca
@rojoca 已更新为使用 beforeunload。没有意识到 unload 太晚了。感谢你的提示。 - ahsteele

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接