2011-08-25 63 views
0

我正在編寫一個JavaScript庫,必須檢查Firefox 4或更高版本。相信我,我需要。嗅探Firefox 4及更高版本的方法

我打算去以下嗅探代碼:

if ('MozAppearance' in document.documentElement.style) { 

    //We have Mozilla 

    if (!!window.FormData) { 

     //We have Firefox4+ 

    } 
} 

我覺得ok了它,因爲它似乎相當不可能(對我來說),任何人都將增加全球FORMDATA方法。

假設我對與任何瀏覽器嗅探方法相關的常見風險感到滿意,您是否可以看到與此有關的任何問題?

的文檔window.FormData在Firefox是在這裏:

https://developer.mozilla.org/en/DOM/XMLHttpRequest/FormData

謝謝!

+2

但*爲什麼*您需要檢查Firefox 4或更高版本?你可能(不太可能)沒有考慮更好的方法。 –

+2

我不相信你。 –

+1

我只是想知道爲什麼FF4?! – Layke

回答

0

這是由你來決定,如果這是你的合理的功能檢測。如果您認爲測試FormData的存在就足夠了;然後去那。

您可以「增加」您檢查的功能。你也可以尋找window.URL,一個new feature in Firefox 4還有:

if (!!window.FormData && !!window.URL) { 

    //We have Firefox4+ 

} 

所以,現在你的勝算,有人宣稱兩個甚至更​​低。如果您相信您的用戶足以不改變它們,您也可以獲得所涉及的用戶代理。

+0

我喜歡你的方法來結合測試來降低在野外發生誤報的機率。謝謝! –

0

window.history.pushState是另一個你可以檢查。 我認爲我們可以整天使用出現在FF4 +而不是FF3.x中的功能。

0

假設我對與任何 瀏覽器嗅探方法相關的常見風險感到滿意,您是否可以看到與此有關的任何問題?

它會打破他們放棄前綴的那一刻。
所有-moz- properties標籤已過時證明了這一事實。
所以請記住,您將不得不使用||不斷添加最新的Mozilla擴展。

+0

-moz-appearance是用於使用基於操作系統的本機控件呈現元素的XUL平臺的一部分。這將不可能是標準化的;所以前綴將永遠在那裏。 – vcsjones

+0

@jones [oh rly?](http://dev.w3.org/csswg/css3-ui/#appearance) – Knu