2013-02-19 13 views
2

首先,這是非常相似,: Workaround for file input label click (Firefox)解決方法文件輸入標籤上單擊(火狐) - jQuery的1.9

,但所提供的解決方案是不是在jQuery的工作1.9+

的$ .browser變量不存在了,因爲現在我們必須做feature detection

我非常想檢測我需要的功能,但在jQuery中似乎沒有這種支持。 瀏覽器檢測功能不見了,功能檢測似乎無法檢測到我需要的功能,那裏有一個很好的解決方案嗎? Modernizr的解決方案將不勝感激,也接受普通香草-js解決方案

感謝您的幫助。

+0

如果您的意思是顛倒順序,那不是一個解決方案。 – Sirion 2013-02-19 16:42:02

+0

我的意思是使用標籤點擊 - >輸入點擊觸發解決方案,但這會導致其他瀏覽器中的雙重文件對話框。我想不出一種方法來檢測對此的支持,所以我建議僅查看useragent並檢測出現此問題的特定瀏覽器和版本。 – 2013-02-19 16:43:49

回答

3
if (window.mozIndexedDB !== undefined) { 
    //do firefox things 
} 

這隻會在Firefox,afaik中返回true。

試驗例:

if (window.mozIndexedDB !== undefined) { 
    alert('You are using Firefox'); 
} 

你可以嘗試尋找window.navigator.userAgent但我不建議這樣做,一堆的其他瀏覽器識別爲Mozilla的,看到這個問題的一些例子:Why Does 「navigator.userAgent」 in javaScript returns the String 「Mozilla」 when tried in a google chrome borwser?

+0

當訪問window.Mozilla時,我的Firefox返回undefined.Mozilla – Sirion 2013-02-19 16:51:10

+0

對不起,我使用了錯誤的,看到我編輯的答案 – daveyfaherty 2013-02-19 16:52:03

+0

這是更好的然後'navigator.userAgent.indexOf('Firefox')!== - 1'? – Sirion 2013-02-19 16:54:28

0

不是最佳實踐,但爲什麼不嘗試jQuery Migrate plugin?它帶回$ .browser,以及一些其他刪除的功能。

+0

因爲這是另一個16.7kb只是爲了檢查這是一個Firefox瀏覽器。 – Sirion 2013-02-19 16:45:57