当用户尝试按下后退按钮或使用 Firefox 时,如何添加警报? (Javascript)
Posted
技术标签:
【中文标题】当用户尝试按下后退按钮或使用 Firefox 时,如何添加警报? (Javascript)【英文标题】:How do I add an alert when the user tries to press the back button or is using firefox? (Javascript) 【发布时间】:2010-12-15 09:36:33 【问题描述】:只需要一点 javascript 就可以警告按下后退按钮的人,这可能会用确定/取消按钮搞砸他们的交易,并且还需要一种检测他们是否使用任何版本的 firefox 的方法。
【问题讨论】:
【参考方案1】:您可以使用http://www.sajithmr.me/warning-before-navigate-away-from-a-page/ 之类的内容来检查用户是否即将离开该页面。我不确定是否有专门针对后退按钮的解决方案。
【讨论】:
【参考方案2】:关于您的浏览器检测问题,我不太喜欢使用基于用户代理的浏览器检测,最好在 onLoad 上进行功能测试。但是,如果您只是想查看是否有人在使用(或说他们正在使用)Firefox,您可以解析 useragent 字符串。这是来自 jQuery 1.3.2 源代码的一个示例:
var userAgent = navigator.userAgent.toLowerCase();
// Figure out what browser is being used
jQuery.browser =
version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1],
safari: /webkit/.test( userAgent ),
opera: /opera/.test( userAgent ),
msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
;
【讨论】:
【参考方案3】:这个 SO 问题:Detecting Back Button/Hash Change in URL 将回答您的大部分问题。
检测后退按钮是一项棘手的工作,因为它与关闭窗口的行为相同。
您可以使用onbeforeunload
事件处理程序来处理此问题,但就像我说的那样,这有点棘手。
【讨论】:
【参考方案4】:back-break 和 UA-sniffing 都是巨大的代码气味。
当用户返回事务中的一个步骤时,正确编码的 Web 应用程序不应该“搞砸”。如果是这样,您可能会遇到一系列并发问题,这会使您的网站使用起来不愉快。
UA 嗅探非常麻烦,容易出现误报和误报,如果在服务器端进行,还会出现代理问题。您想要检测 Firefox 的原因是什么?如果您正在尝试解决特定的 Firefox 问题,几乎可以肯定有一种更好的方法专注于该功能,而不是尝试检测特定的浏览器。
【讨论】:
以上是关于当用户尝试按下后退按钮或使用 Firefox 时,如何添加警报? (Javascript)的主要内容,如果未能解决你的问题,请参考以下文章
按下后退按钮时未调用Android onUserLeaveHint()
按下后退按钮后,navigationController 为 NULL