Подход для сниффинга Firefox 4 и выше - PullRequest
0 голосов
/ 25 августа 2011

Я пишу библиотеку JavaScript, которую должен проверить для Firefox 4 или выше. Поверь мне, мне нужно.

Я планирую использовать следующий код сниффинга:

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

    //We have Mozilla

    if (!!window.FormData) {

        //We have Firefox4+

    }
}

Я чувствую себя хорошо по этому поводу, потому что мне кажется маловероятным, что кто-либо добавит глобальный метод FormData.

Предполагая, что меня устраивают обычные риски, связанные с любым методом перехвата браузера, вы можете увидеть какие-либо проблемы с этим?

Документация для window.FormData в Firefox находится здесь:

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

спасибо!

Ответы [ 3 ]

0 голосов
/ 25 августа 2011

window.history.pushState - еще один вариант, который вы можете проверить.Я думаю, что мы могли бы делать это весь день с функциями, которые появляются в FF4 +, но не в FF3.x.

0 голосов
/ 25 августа 2011

Предполагая, что меня устраивают обычные риски, связанные с любым методом перехвата браузера, вы можете увидеть какие-либо проблемы с этим?

Это сломает момент, когда они пропустят префикс.
Все помеченные -moz- свойства помечены как устаревшие, подтверждают этот факт.
Помните, что вам придется постоянно добавлять последние расширения Mozilla, используя ||.

0 голосов
/ 25 августа 2011

Вам решать, будет ли это приемлемым для вас обнаружением функции.Если вы считаете, что проверки на наличие FormData достаточно;затем идите с этим.

Вы также можете «расширить» функции, которые вы проверяете.Вы также можете посмотреть window.URL, новую функцию в Firefox 4 :

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

    //We have Firefox4+

}

Так что теперь ваши шансы, что кто-то объявил оба еще ниже,Вы также можете привлечь агента пользователя, если вы достаточно доверяете своим пользователям, чтобы не изменять их.

...