Тестируйте IE6, используя функцию обнаружения вместо тестирования пользовательского агента - PullRequest
4 голосов
/ 13 февраля 2011

Я использую html5boilerplate с библиотекой Modernizr. Мое приложение построено с использованием jQuery. Как в Modernizr, так и в jQuery встроено обнаружение функций, но, насколько я понимаю, Modernizr является более полным. Я планирую использовать Modernizr для обнаружения функций, если для этого нет веских причин использовать jQuery.

Мое приложение предназначено для работы только с более современными браузерами (такими как IE7 +, Firefox, Chrome, Safari и более новые Opera), однако оно все еще работает в IE6. Я хотел бы убедиться, что пользователи видят большое жирное предупреждение, если они используют более старый браузер, такой как IE6. Я также хотел бы отобразить «предложение» перейти на Chrome или другой браузер, совместимый с HTML5, если он еще не используется.

Я не хочу использовать тестирование пользовательского агента.

  • Есть ли конкретный список функций, которые я должен проверить, чтобы определить, использует ли пользователь IE6 или нет?
  • Есть ли конкретный список функций, которые я должен проверить, чтобы определить, просматривает ли пользователь достаточно совместимый браузер HTML5 (Chrome, Safari, IE9 и т. Д.)

Ответы [ 2 ]

9 голосов
/ 13 февраля 2011

Вы говорите, что используете HTML5Boilerplate. В самом верху index.html это:

<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]>    <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]>    <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]>    <html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> 

Итак, используя jQuery, спланируйте старый javascript или даже css, чтобы просто проверить наличие класса ie6 в html.

<style>
.upgrade-notice { display: none; }
.ie6 .upgrade-notice { display: block; }
</style>

<div class="upgrade-notice"><h1>Please upgrade your browser</h1></div>
2 голосов
/ 13 февраля 2011

Используйте условные комментарии для тестирования версии IE.

<!--[if lt IE 7]><script>window.location='/main/unsupported_browser';</script><![endif]-->

Что касается остальных, вам следует проверять только те функции, которые вы используете, и только тогда, когда вы их используете. Таким образом, вы будете грациозно деградировать и случайно не заблокируете работающий браузер.

...