2009-11-11 72 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問題,那麼幾乎可以肯定的是,專注於該功能的更好方法,而不是嘗試檢測特定的瀏覽器。

相關問題