2010-02-10 60 views
1

如何使用功能檢測來檢測瀏覽器是否是Firefox,ie(但不是ie6),opera,chrome或safari?jquery 1.4的功能檢測

+1

你想確定什麼? 「功能檢測」用來表示,如果它支持這一點,那麼做到這一點,如果不是,則後備...關鍵是不關心哪個瀏覽器。鑑於此,你確定瀏覽器是什麼? – 2010-02-10 02:00:48

+0

謝謝,那麼我可能會以錯誤的方式去解決這個問題。但是,如果有人不使用上述網站之一,我被告知要在網站上發出警告。我認爲JS可能是這樣做的一種方式,但$ .browser被棄用,我認爲功能檢測可能會解決這個問題。 – Colin 2010-02-10 02:30:56

+0

如果您的要求聲明您必須包含「舊瀏覽器」通知,則應該使用'$ .browser'或服務器端代碼檢查用戶代理。特徵檢測不是檢測瀏覽器的可靠方法。 – Joel 2010-02-10 02:57:40

回答

4

功能檢測不應該告訴您用戶正在使用哪個瀏覽器。它旨在告訴您瀏覽器是否可以處理您需要執行的操作。

因此,舉例來說,如果你需要支持ActiveX,您可以檢查

if(ActiveXObject) { ... } 

這比檢查更好,如果瀏覽器是IE,因爲一些其他的瀏覽器(當前或未來)可能支持ActiveX過。

更有用的示例可能是在遍歷節點列表時進行文本節點檢查。

if (!el.tagName || el.tagName != expectedTagName) 
    el = el.nextSibling; // skip the text node 
0

對於Safari瀏覽器:我要去服務器端路由,即使用Chris Schuld的Browser.php;除了http用戶代理之外,關於Safari功能檢測的文檔很少。

0

我正在尋找答案,也許有人解決了我的問題。 許多人一樣,我結束了寫我自己:

try { 
     if (ActiveXObject != undefined) { 
      alert("we have activex"); 
    } 
    } 
    catch (err) 
    { 
     alert(err.message); 
    } 

你會的,當然,要自定義您的實現。我的例子只是顯示了基本邏輯。 HTH!