2009-11-11 41 views

回答

1

这个SO问题:Detecting Back Button/Hash Change in URL将回答你的大部分问题。

检测后退按钮是一项棘手的业务,因为它与关闭窗口的行为相同。

您可以使用onbeforeunload事件处理程序来处理这个问题,但就像我说的那样,这有点棘手。

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) 
}; 
+0

非常感谢! – NibblyPig 2009-11-11 09:26:50

1

破裂和UA嗅探都是一种巨大的代码味道。

当用户返回事务中的某个步骤时,正确编码的Web应用程序不应该“搞砸”。如果是这样,您可能会收集一系列并发问题,这会使您的网站不便使用。

UA嗅探非常麻烦,容易出现误报和否定,并且如果在服务器端完成代理问题。你想检测Firefox的原因是什么?如果您尝试解决某个特定的Firefox问题,那么几乎可以肯定的是,专注于该功能的更好方法,而不是尝试检测特定的浏览器。

相关问题